文集文档索引

Docker 命令大全与常用操作


  • 文集信息
  • 目录大纲
  • 最新文档
  • 知识宇宙

文集详情

文集导读

Docker 命令大全与常用操作 Docker 命令大全与常用操作详解 Docker 作为容器化技术的领头羊,其强大之处离不开丰富的命令集。掌握这些命令,能帮助我们更高效地构建、管理和部署容器化应用。本章节将详细介绍 Docker 常用命令,并结合实际操作场景进行讲解,力求让读者能够快速上手并灵活运用。 镜像管理命令 镜像(Image)是 Docker 的基石,它包含了运行容器所需的所有文件系统、代码和依赖项。 1.1 :拉取镜像 从 Docker Hub 或其他镜像仓库拉取镜像到本地。 : 镜像名称,如 、 。 : 镜像标签,指定版本,如 、 。 默认为 。 : 镜像摘要,用于唯一标识镜像版本。 : 常用选项包括: : 拉取所有 tagged 镜像。 : 指定平台。 示例: 1.2 :查看本地镜像 列出本地已下载的镜像。 : 镜像仓库名称。 : 镜像标签。 : 常用选项包括: : 显示所有镜像,包括中间层镜像。 : 只显示镜像 ID。 : 显示镜像摘要。 : 使用 Go 模板格式化输出。 示例: 1.3 :删除镜像 删除本地镜像。 : 镜像名称或 ID。 : 常用选项包括: : 强制删除镜像,即使有容器正在使用它。 : 不要删除未打标签的父镜像。 示例: 1.4 :构建镜像 使用 Dockerfile 构建镜像。 : Dockerfile 所在的目录路径。

Docker 命令大全与常用操作

Docker 命令大全与常用操作详解

Docker 作为容器化技术的领头羊,其强大之处离不开丰富的命令集。掌握这些命令,能帮助我们更高效地构建、管理和部署容器化应用。本章节将详细介绍 Docker 常用命令,并结合实际操作场景进行讲解,力求让读者能够快速上手并灵活运用。

1. 镜像管理命令

镜像(Image)是 Docker 的基石,它包含了运行容器所需的所有文件系统、代码和依赖项。

1.1 docker pull:拉取镜像

从 Docker Hub 或其他镜像仓库拉取镜像到本地。

docker pull [OPTIONS] NAME[:TAG|@DIGEST]
  • NAME: 镜像名称,如 ubuntunginx

  • TAG: 镜像标签,指定版本,如 latest16.04。 默认为 latest

  • DIGEST: 镜像摘要,用于唯一标识镜像版本。

  • OPTIONS: 常用选项包括:

    • -a, --all-tags: 拉取所有 tagged 镜像。

    • --platform: 指定平台。

示例:

docker pull ubuntu:latest # 拉取 ubuntu 最新版本镜像 docker pull nginx:1.21 # 拉取 nginx 1.21 版本镜像

1.2 docker images:查看本地镜像

列出本地已下载的镜像。

docker images [OPTIONS] [REPOSITORY[:TAG]]
  • REPOSITORY: 镜像仓库名称。

  • TAG: 镜像标签。

  • OPTIONS: 常用选项包括:

    • -a, --all: 显示所有镜像,包括中间层镜像。

    • -q, --quiet: 只显示镜像 ID。

    • --digests: 显示镜像摘要。

    • --format string: 使用 Go 模板格式化输出。

示例:

docker images # 列出所有镜像 docker images -q # 只显示镜像 ID docker images --format "{{.Repository}}:{{.Tag}}" # 自定义输出格式

1.3 docker rmi:删除镜像

删除本地镜像。

docker rmi [OPTIONS] IMAGE [IMAGE...]
  • IMAGE: 镜像名称或 ID。

  • OPTIONS: 常用选项包括:

    • -f, --force: 强制删除镜像,即使有容器正在使用它。

    • --no-prune: 不要删除未打标签的父镜像。

示例:

docker rmi ubuntu:latest # 删除 ubuntu 最新版本镜像 docker rmi <image_id> # 通过镜像 ID 删除镜像 docker rmi -f <image_id> # 强制删除镜像

1.4 docker build:构建镜像

使用 Dockerfile 构建镜像。

docker build [OPTIONS] PATH | URL | -
  • PATH: Dockerfile 所在的目录路径。

  • URL: Dockerfile 的 URL 地址。

  • -: 从标准输入读取 Dockerfile。

  • OPTIONS: 常用选项包括:

    • -t, --tag string: 指定镜像名称和标签,格式为 name:tag

    • -f, --file string: 指定 Dockerfile 的路径,默认为 PATH/Dockerfile

    • --build-arg list: 设置构建参数。

    • --no-cache: 不使用缓存。

示例:

docker build -t my-app:latest . # 在当前目录下构建镜像,并命名为 my-app:latest docker build -f Dockerfile.dev -t my-app:dev . # 指定 Dockerfile.dev 构建镜像 docker build --build-arg VERSION=1.0 -t my-app . # 设置构建参数 VERSION

1.5 docker push:推送镜像

将本地镜像推送到 Docker Hub 或其他镜像仓库。

docker push [OPTIONS] NAME[:TAG]
  • NAME: 镜像名称,必须包含仓库地址,例如 username/my-app:latest

  • TAG: 镜像标签。

  • OPTIONS: 常用选项包括:

    • --disable-content-trust: 忽略内容信任。

示例:

docker push username/my-app:latest # 推送镜像到 Docker Hub

2. 容器管理命令

容器(Container)是镜像的运行实例,是 Docker 的核心组成部分。

2.1 docker run:创建并运行容器

从镜像创建并运行一个容器。

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • IMAGE: 镜像名称。

  • COMMAND: 容器启动后执行的命令。

  • ARG...: 命令的参数。

  • OPTIONS: 常用选项包括:

    • -d, --detach: 在后台运行容器。

    • -p, --publish list: 端口映射,将宿主机的端口映射到容器的端口,格式为 hostPort:containerPort

    • -v, --volume list: 数据卷挂载,将宿主机的目录或文件挂载到容器的目录,格式为 hostPath:containerPath

    • --name string: 指定容器名称。

    • -e, --env list: 设置环境变量。

    • -it: 以交互模式运行容器,分配一个伪终端。

    • --rm: 容器停止后自动删除。

    • --restart always: 容器退出后自动重启。

    • --network string: 指定容器连接的网络。

示例:

docker run -d -p 8080:80 nginx:latest # 在后台运行 nginx 容器,并将宿主机的 8080 端口映射到容器的 80 端口 docker run -it ubuntu:latest /bin/bash # 以交互模式运行 ubuntu 容器,并进入 bash 终端 docker run --name my-app -e APP_ENV=production my-app:latest # 命名容器为 my-app,并设置环境变量 docker run -v /data:/app/data my-app:latest # 将宿主机的 /data 目录挂载到容器的 /app/data 目录 docker run --rm ubuntu:latest echo "Hello, Docker!" # 运行后自动删除容器

2.2 docker ps:查看容器

列出正在运行的容器。

docker ps [OPTIONS]
  • OPTIONS: 常用选项包括:

    • -a, --all: 显示所有容器,包括已停止的容器。

    • -q, --quiet: 只显示容器 ID。

    • -l, --latest: 显示最近创建的容器。

    • --filter filter: 根据条件过滤容器。

    • --format string: 使用 Go 模板格式化输出。

示例:

docker ps # 列出正在运行的容器 docker ps -a # 列出所有容器 docker ps -q # 只显示容器 ID docker ps --filter "status=exited" # 显示已退出的容器

2.3 docker stop:停止容器

停止一个或多个正在运行的容器。

docker stop [OPTIONS] CONTAINER [CONTAINER...]
  • CONTAINER: 容器名称或 ID。

  • OPTIONS: 常用选项包括:

    • -t, --time int: 等待容器正常停止的秒数,默认为 10 秒。

示例:

docker stop my-app # 停止名为 my-app 的容器 docker stop <container_id> # 通过容器 ID 停止容器

2.4 docker start:启动容器

启动一个已停止的容器。

docker start [OPTIONS] CONTAINER [CONTAINER...]
  • CONTAINER: 容器名称或 ID。

示例:

docker start my-app # 启动名为 my-app 的容器 docker start <container_id> # 通过容器 ID 启动容器

2.5 docker restart:重启容器

重启一个正在运行的容器。

docker restart [OPTIONS] CONTAINER [CONTAINER...]
  • CONTAINER: 容器名称或 ID。

  • OPTIONS: 常用选项包括:

    • -t, --time int: 等待容器正常停止的秒数,默认为 10 秒。

示例:

docker restart my-app # 重启名为 my-app 的容器 docker restart <container_id> # 通过容器 ID 重启容器

2.6 docker kill:强制停止容器

强制停止一个正在运行的容器。 发送 SIGKILL 信号。

docker kill [OPTIONS] CONTAINER [CONTAINER...]
  • CONTAINER: 容器名称或 ID。

  • OPTIONS: 常用选项包括:

    • -s, --signal string: 发送的信号,默认为 KILL。

示例:

docker kill my-app # 强制停止名为 my-app 的容器 docker kill <container_id> # 通过容器 ID 强制停止容器 docker kill -s SIGTERM <container_id> # 发送 SIGTERM 信号

2.7 docker rm:删除容器

删除一个或多个已停止的容器。

docker rm [OPTIONS] CONTAINER [CONTAINER...]
  • CONTAINER: 容器名称或 ID。

  • OPTIONS: 常用选项包括:

    • -f, --force: 强制删除容器,即使容器正在运行。

    • -v, --volumes: 删除与容器关联的匿名卷。

示例:

docker rm my-app # 删除名为 my-app 的容器 docker rm <container_id> # 通过容器 ID 删除容器 docker rm -f <container_id> # 强制删除容器

2.8 docker exec:进入容器

在运行的容器中执行命令。

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
  • CONTAINER: 容器名称或 ID。

  • COMMAND: 要执行的命令。

  • ARG...: 命令的参数。

  • OPTIONS: 常用选项包括:

    • -it: 以交互模式运行命令,分配一个伪终端。

    • -d, --detach: 在后台运行命令。

    • -u, --user string: 指定执行命令的用户。

示例:

docker exec -it my-app /bin/bash # 进入名为 my-app 的容器的 bash 终端 docker exec my-app ls -l /app # 在 my-app 容器中执行 ls -l /app 命令

2.9 docker logs:查看容器日志

查看容器的日志输出。

docker logs [OPTIONS] CONTAINER
  • CONTAINER: 容器名称或 ID。

  • OPTIONS: 常用选项包括:

    • -f, --follow: 持续输出日志,类似于 tail -f

    • --since string: 显示自指定时间戳之后的日志。

    • --tail string: 只显示最新的 N 行日志。

    • --timestamps: 显示时间戳。

示例:

docker logs my-app # 查看名为 my-app 的容器的日志 docker logs -f my-app # 持续输出 my-app 容器的日志 docker logs --tail 100 my-app # 查看 my-app 容器最新的 100 行日志

2.10 docker stats:查看容器资源使用情况

查看容器的 CPU、内存、网络 IO 等资源使用情况。

docker stats [OPTIONS] [CONTAINER...]
  • CONTAINER: 容器名称或 ID。 如果不指定,则显示所有容器的统计信息。

  • OPTIONS: 常用选项包括:

    • -a, --all: 显示所有容器的统计信息,包括已停止的容器。

    • --no-stream: 只显示一次统计信息。

    • --format string: 使用 Go 模板格式化输出。

示例:

docker stats # 查看所有容器的资源使用情况 docker stats my-app # 查看名为 my-app 的容器的资源使用情况

3. 网络管理命令

Docker 提供了灵活的网络管理功能,允许容器之间以及容器与宿主机之间进行通信。

3.1 docker network create:创建网络

创建一个新的 Docker 网络。

docker network create [OPTIONS] NETWORK
  • NETWORK: 网络名称。

  • OPTIONS: 常用选项包括:

    • -d, --driver string: 指定网络驱动,常用的有 bridgeoverlay

    • --subnet string: 指定网络的子网。

    • --gateway string: 指定网络的网关。

示例:

docker network create my-net # 创建一个名为 my-net 的 bridge 网络 docker network create --driver overlay --subnet 10.0.0.0/24 my-overlay-net # 创建一个 overlay 网络

3.2 docker network ls:查看网络

列出所有 Docker 网络。

docker network ls [OPTIONS]
  • OPTIONS: 常用选项包括:

    • -q, --quiet: 只显示网络 ID。

    • --filter filter: 根据条件过滤网络。

    • --format string: 使用 Go 模板格式化输出。

示例:

docker network ls # 列出所有网络 docker network ls -q # 只显示网络 ID

3.3 docker network connect:连接容器到网络

将一个容器连接到一个或多个网络。

docker network connect [OPTIONS] NETWORK CONTAINER
  • NETWORK: 网络名称。

  • CONTAINER: 容器名称或 ID。

  • OPTIONS: 常用选项包括:

    • --alias list: 为容器在网络中设置别名。

示例:

docker network connect my-net my-app # 将 my-app 容器连接到 my-net 网络 docker network connect --alias db my-net my-app # 将 my-app 容器连接到 my-net 网络,并设置别名为 db

3.4 docker network disconnect:从网络断开容器

将一个容器从网络中断开连接。

docker network disconnect [OPTIONS] NETWORK CONTAINER
  • NETWORK: 网络名称。

  • CONTAINER: 容器名称或 ID。

  • OPTIONS: 常用选项包括:

    • -f, --force: 强制断开连接。

示例:

docker network disconnect my-net my-app # 将 my-app 容器从 my-net 网络中断开连接

3.5 docker network inspect:查看网络信息

查看 Docker 网络的详细信息。

docker network inspect [OPTIONS] NETWORK [NETWORK...]
  • NETWORK: 网络名称或 ID。

  • OPTIONS: 常用选项包括:

    • --format string: 使用 Go 模板格式化输出。

示例:

docker network inspect my-net # 查看 my-net 网络的详细信息

3.6 docker network rm:删除网络

删除一个 Docker 网络。

docker network rm NETWORK [NETWORK...]
  • NETWORK: 网络名称或 ID。

示例:

docker network rm my-net # 删除 my-net 网络

4. 数据卷管理命令

数据卷(Volume)是 Docker 中用于持久化存储数据的机制。

4.1 docker volume create:创建数据卷

创建一个新的数据卷。

docker volume create [OPTIONS] [VOLUME]
  • VOLUME: 数据卷名称。 如果不指定,Docker 会自动生成一个随机名称。

  • OPTIONS: 常用选项包括:

    • -d, --driver string: 指定数据卷驱动,常用的有 local

    • --opt map: 设置驱动选项。

示例:

docker volume create my-data # 创建一个名为 my-data 的数据卷 docker volume create --driver local --opt type=nfs,o=addr=192.168.1.10,rw,nfsvers=4.1,nolock,tcp,noatime,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 my-nfs-data # 创建一个 NFS 数据卷

4.2 docker volume ls:查看数据卷

列出所有 Docker 数据卷。

docker volume ls [OPTIONS]
  • OPTIONS: 常用选项包括:

    • -q, --quiet: 只显示数据卷名称。

    • --filter filter: 根据条件过滤数据卷。

    • --format string: 使用 Go 模板格式化输出。

示例:

docker volume ls # 列出所有数据卷 docker volume ls -q # 只显示数据卷名称

4.3 docker volume inspect:查看数据卷信息

查看 Docker 数据卷的详细信息。

docker volume inspect [OPTIONS] VOLUME [VOLUME...]
  • VOLUME: 数据卷名称。

  • OPTIONS: 常用选项包括:

    • --format string: 使用 Go 模板格式化输出。

示例:

docker volume inspect my-data # 查看 my-data 数据卷的详细信息

4.4 docker volume rm:删除数据卷

删除一个 Docker 数据卷。

docker volume rm VOLUME [VOLUME...]
  • VOLUME: 数据卷名称。

示例:

docker volume rm my-data # 删除 my-data 数据卷

4.5 docker volume prune:清理未使用的数据卷

删除所有未被使用的 Docker 数据卷。

docker volume prune [OPTIONS]
  • OPTIONS: 常用选项包括:

    • -f, --force: 强制删除,无需确认。

示例:

docker volume prune -f # 删除所有未被使用的数据卷

5. Docker Compose

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它使用 YAML 文件来配置应用程序的服务,然后使用一个命令来创建并启动所有服务。

5.1 docker-compose up:启动 Compose 应用

使用 docker-compose.yml 文件启动 Compose 应用。

docker-compose up [OPTIONS] [SERVICE...]
  • OPTIONS: 常用选项包括:

    • -d, --detach: 在后台运行 Compose 应用。

    • --build: 在启动之前构建镜像。

    • --force-recreate: 强制重新创建容器。

    • --scale SERVICE=NUM: 扩展指定服务的容器数量。

示例:

docker-compose up -d # 在后台启动 Compose 应用 docker-compose up --build # 在启动之前构建镜像 docker-compose up --scale web=3 # 扩展 web 服务的容器数量到 3 个

5.2 docker-compose down:停止并删除 Compose 应用

停止并删除 Compose 应用中的所有容器、网络和数据卷。

docker-compose down [OPTIONS]
  • OPTIONS: 常用选项包括:

    • -v, --volumes: 删除与 Compose 应用关联的数据卷。

    • --rmi type: 删除 Compose 应用使用的镜像,type 可以是 alllocal

示例:

docker-compose down # 停止并删除 Compose 应用 docker-compose down -v # 停止并删除 Compose 应用,并删除关联的数据卷

5.3 docker-compose ps:查看 Compose 应用状态

列出 Compose 应用中所有容器的状态。

docker-compose ps [OPTIONS]
  • OPTIONS: 常用选项包括:

    • -q, --quiet: 只显示容器 ID。

示例:

docker-compose ps # 列出 Compose 应用中所有容器的状态 docker-compose ps -q # 只显示容器 ID

5.4 docker-compose logs:查看 Compose 应用日志

查看 Compose 应用中所有容器的日志输出。

docker-compose logs [OPTIONS] [SERVICE...]
  • OPTIONS: 常用选项包括:

    • -f, --follow: 持续输出日志,类似于 tail -f

    • --tail string: 只显示最新的 N 行日志。

    • --timestamps: 显示时间戳。

示例:

docker-compose logs # 查看 Compose 应用中所有容器的日志 docker-compose logs -f web # 持续输出 web 服务的日志

5.5 docker-compose exec:进入 Compose 应用容器

在 Compose 应用的容器中执行命令。

docker-compose exec [OPTIONS] SERVICE COMMAND [ARG...]
  • SERVICE: 服务名称。

  • COMMAND: 要执行的命令。

  • ARG...: 命令的参数。

  • OPTIONS: 常用选项包括:

    • -it: 以交互模式运行命令,分配一个伪终端。

    • -u, --user string: 指定执行命令的用户。

示例:

docker-compose exec -it web /bin/bash # 进入 web 服务的 bash 终端 docker-compose exec db mysql -u root -p # 在 db 服务中执行 mysql 命令

6. 其他常用命令

  • docker info 显示 Docker 系统信息,包括内核版本、CPU 数量、内存大小等。

  • docker version 显示 Docker 版本信息。

  • docker login 登录到 Docker Hub 或其他镜像仓库。

  • docker logout 登出 Docker Hub 或其他镜像仓库。

  • docker search 在 Docker Hub 上搜索镜像。

  • docker system prune 清理未使用的 Docker 资源,包括镜像、容器、网络和数据卷。

7. 总结

本文详细介绍了 Docker 常用命令,涵盖了镜像管理、容器管理、网络管理、数据卷管理和 Docker Compose 等方面。 熟练掌握这些命令,将有助于你更好地使用 Docker 构建、管理和部署容器化应用。 希望本章节的内容能够帮助你快速入门 Docker,并在实际工作中灵活运用。

目录大纲

    最新文档

    知识宇宙

    正在加载知识图谱...


    转发