【Docker】常用命令

Docker 是一个功能强大的平台,用于创建、部署和管理容器化应用程序。在日常使用时,Docker 能够帮助我们快速高效地进行容器管理、镜像操作、数据卷管理以及网络配置。

容器管理命令

1. docker run

运行一个新的容器,通常是我们启动容器的第一个命令。

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用选项
  • -d:以后台模式运行容器(detached)。
  • -p:端口映射,格式为 主机端口:容器端口
  • --name:为容器指定一个名称。
  • -v:挂载一个主机目录或数据卷到容器,格式为 主机路径:容器路径
  • -e:设置环境变量,格式为 变量名=值
  • --rm:容器退出时自动删除。
  • --network:指定容器连接到的网络。
  • --link:连接到其他容器,支持容器间通信。
示例
# 运行一个 Nginx 容器,映射主机 8080 端口到容器的 80 端口
docker run -d -p 8080:80 --name my_nginx nginx

# 运行一个 Ubuntu 容器,并交互式进入容器终端
docker run -it --name my_ubuntu ubuntu /bin/bash

# 运行一个容器并设置环境变量
docker run -d -e MY_ENV_VAR=value my_image

2. docker ps

列出当前正在运行的容器。

docker ps [OPTIONS]
常用选项
  • -a:列出所有容器,包括已停止的。
  • -q:只显示容器的 ID。
  • --filter:根据条件过滤容器,如状态或名称。
示例
# 列出所有正在运行的容器
docker ps

# 列出所有容器,包括已停止的
docker ps -a

# 列出所有正在运行的容器的 ID
docker ps -q

# 根据名称过滤容器
docker ps --filter "name=my_nginx"

3. docker stop

停止一个运行中的容器。

docker stop CONTAINER_ID_or_NAME
示例
# 停止名为 my_nginx 的容器
docker stop my_nginx

# 停止 ID 为 a1b2c3d4 的容器
docker stop a1b2c3d4

4. docker start

启动一个已停止的容器。

docker start CONTAINER_ID_or_NAME
示例
# 启动名为 my_nginx 的容器
docker start my_nginx

# 启动 ID 为 a1b2c3d4 的容器
docker start a1b2c3d4

5. docker restart

重启一个容器。

docker restart CONTAINER_ID_or_NAME
示例
# 重启名为 my_nginx 的容器
docker restart my_nginx

# 重启 ID 为 a1b2c3d4 的容器
docker restart a1b2c3d4

6. docker rm

删除一个或多个容器。

docker rm [OPTIONS] CONTAINER_ID_or_NAME [CONTAINER_ID_or_NAME...]
常用选项
  • -f:强制删除正在运行的容器。
示例
# 删除名为 my_nginx 的容器
docker rm my_nginx

# 删除多个容器
docker rm my_nginx my_ubuntu

# 强制删除正在运行的容器
docker rm -f my_running_container

7. docker logs

查看容器的日志输出。

docker logs [OPTIONS] CONTAINER_ID_or_NAME
常用选项
  • -f:实时跟踪日志输出。
  • --tail:显示日志的最后 N 行。
示例
# 查看名为 my_nginx 的容器日志
docker logs my_nginx

# 实时跟踪日志输出
docker logs -f my_nginx

# 显示最后 100 行日志
docker logs --tail 100 my_nginx

8. docker exec

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

docker exec [OPTIONS] CONTAINER_ID_or_NAME COMMAND [ARG...]
常用选项
  • -i:保持标准输入打开。
  • -t:分配一个伪终端。
示例
# 在名为 my_nginx 的容器内执行命令
docker exec my_nginx ls /usr/share/nginx/html

# 交互式进入容器终端
docker exec -it my_nginx /bin/bash

9. docker attach

附加到正在运行的容器的标准输入/输出/错误。

docker attach CONTAINER_ID_or_NAME
示例
# 附加到名为 my_nginx 的容器
docker attach my_nginx

10. docker top

查看容器内运行的进程。

docker top CONTAINER_ID_or_NAME
示例
# 查看名为 my_nginx 的容器内运行的进程
docker top my_nginx

11. docker inspect

查看容器或镜像的详细信息,包括网络配置、挂载卷等。

docker inspect [OPTIONS] CONTAINER_ID_or_NAME | IMAGE
示例
# 查看容器 my_nginx 的详细信息
docker inspect my_nginx

# 查看镜像 nginx 的详细信息
docker inspect nginx

12. docker commit

将容器的当前状态保存为一个新的镜像。

docker commit [OPTIONS] CONTAINER_ID_or_NAME REPOSITORY[:TAG]
常用选项
  • -m:提交时的描述信息。
  • -a:指定镜像的作者。
示例
# 将容器 my_nginx 的当前状态保存为一个新镜像
docker commit -m "My custom Nginx image" -a "Author Name" my_nginx my_nginx_image

13. docker export

导出容器的文件系统为一个 tar 包。

docker export [OPTIONS] CONTAINER_ID_or_NAME
示例
# 导出容器 my_nginx 的文件系统
docker export my_nginx > my_nginx.tar

14. docker import

从 tar 包导入为一个镜像。

docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
示例
# 从文件导入为一个新镜像
docker import my_nginx.tar my_new_nginx_image

15. docker pausedocker unpause

暂停和恢复一个容器中的所有进程。

# 暂停容器
docker pause CONTAINER_ID_or_NAME

# 恢复容器
docker unpause CONTAINER_ID_or_NAME
示例
# 暂停名为 my_nginx 的容器
docker pause my_nginx

# 恢复名为 my_nginx 的容器
docker unpause my_nginx

16. docker kill

通过向容器发送信号来终止容器的进程。

docker kill [OPTIONS] CONTAINER_ID_or_NAME
常用选项
  • -s:指定发送的信号(默认是 SIGKILL)。
示例
# 终止名为 my_nginx 的容器
docker kill my_nginx

# 向容器发送 SIGTERM 信号
docker kill -s SIGTERM my_nginx

17. docker update

更新一个或多个容器的资源限制。

docker update [OPTIONS] CONTAINER_ID_or_NAME [CONTAINER_ID_or_NAME...]
常用选项
  • --cpu-shares:更新 CPU 共享权重。
  • --memory:更新容器的内存限制。
示例
# 更新容器的 CPU 和内存限制
docker update --cpu-shares 512 --memory 1g my_container

18. docker rename

重命名一个容器。

docker rename CONTAINER_ID_or_NAME NEW_NAME
示例
# 将容器 my_nginx 重命名为 new_nginx
docker rename my_nginx new_nginx

镜像管理命令

1. docker images

列出本地的镜像。

docker images [OPTIONS]
常用选项
  • -a:显示所有镜像(包括中间层)。
  • --digests:显示镜像的摘要信息。
  • -q:只显示镜像的 ID。
示例
# 列出所有本地镜像
docker images

# 列出镜像 ID
docker images -q

# 显示镜像的摘要信息
docker images --digests

2. docker pull

从 Docker 仓库拉取镜像。

docker pull [OPTIONS] NAME[:TAG|@DIGEST]
示例
# 拉取最新的 Nginx 镜像
docker pull nginx

# 拉取特定版本的镜像
docker pull nginx:1.21.1

3. docker push

将本地镜像推送到 Docker 仓库。

docker push NAME[:TAG]
示例
# 推送镜像到 Docker Hub
docker push myrepo/myimage:latest

4. docker rmi

删除一个或多个镜像。

docker rmi [OPTIONS] IMAGE [IMAGE...]
常用选项
  • -f:强制删除镜像,即使有容器在使用。
示例
# 删除镜像 nginx
docker rmi nginx

# 强制删除镜像
docker rmi -f my_image

# 删除多个镜像
docker rmi my_image my_image2

5. docker tag

为镜像打标签。

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
示例
# 将 my_image:latest 标签为 myrepo/my_image:v1.0
docker tag my_image:latest myrepo/my_image:v1.0

6. docker build

从 Dockerfile 构建镜像。

docker build [OPTIONS] PATH | URL | -
常用选项
  • -t:为镜像指定名称和标签。
  • -f:指定 Dockerfile 的路径。
  • --build-arg:设置构建参数。
示例
# 从当前目录的 Dockerfile 构建镜像
docker build -t my_image:latest .

# 从指定路径的 Dockerfile 构建镜像
docker build -t my_image:latest -f /path/to/Dockerfile .

# 使用构建参数
docker build --build-arg HTTP_PROXY=http://proxy.example.com -t my_image:latest .

7. docker save

将镜像保存为一个 tar 包。

docker save [OPTIONS] IMAGE [IMAGE...]
示例
# 保存镜像为 my_image.tar
docker save my_image > my_image.tar

8. docker load

从 tar 包加载镜像。

docker load [OPTIONS]
示例
# 从 my_image.tar 加载镜像
docker load < my_image.tar

9. docker history

查看镜像的历史记录。

docker history [OPTIONS] IMAGE
示例
# 查看 nginx 镜像的历史记录
docker history nginx

10. docker inspect

查看镜像的详细信息。

docker inspect [OPTIONS] IMAGE
示例
# 查看 nginx 镜像的详细信息
docker inspect nginx

数据卷管理命令

1. docker volume ls

列出所有数据卷。

docker volume ls [OPTIONS]
示例
# 列出所有数据卷
docker volume ls

2. docker volume create

创建一个新的数据卷。

docker volume create [OPTIONS] VOLUME
示例
# 创建名为 my_volume 的数据卷
docker volume create my_volume

3. docker volume rm

删除一个或多个数据卷。

docker volume rm VOLUME [VOLUME...]
示例
# 删除数据卷 my_volume
docker volume rm my_volume

# 删除多个数据卷
docker volume rm my_volume1 my_volume2

4. docker volume inspect

查看数据卷的详细信息。

docker volume inspect VOLUME [VOLUME...]
示例
# 查看数据卷 my_volume 的详细信息
docker volume inspect my_volume

5. docker volume prune

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

docker volume prune [OPTIONS]
示例
# 删除未使用的所有数据卷
docker volume prune

网络管理命令

1. docker network ls

列出所有网络。

docker network ls [OPTIONS]
示例
# 列出所有网络
docker network ls

2. docker network create

创建一个新的网络。

docker network create [OPTIONS] NETWORK
常用选项
  • --driver:指定网络驱动(如 bridge, overlay)。
示例
# 创建一个自定义桥接网络
docker network create my_bridge

# 创建一个 overlay 网络
docker network create --driver overlay my_overlay

3. docker network rm

删除一个或多个网络。

docker network rm NETWORK [NETWORK...]
示例
# 删除网络 my_bridge
docker network rm my_bridge

# 删除多个网络
docker network rm my_bridge my_overlay

4. docker network inspect

查看网络的详细信息。

docker network inspect NETWORK [NETWORK...]
示例
# 查看网络 my_bridge 的详细信息
docker network inspect my_bridge

5. docker network connect

将容器连接到网络。

docker network connect [OPTIONS] NETWORK CONTAINER
示例
# 将容器 my_container 连接到网络 my_bridge
docker network connect my_bridge my_container

6. docker network disconnect

从网络中断开容器。

docker network disconnect [OPTIONS] NETWORK CONTAINER
示例
# 从网络 my_bridge 中断开容器 my_container
docker network disconnect my_bridge my_container

系统管理命令

1. docker version

查看 Docker 版本信息。

# 查看 Docker 版本信息
docker version

2. docker info

查看 Docker 的系统信息,包括容器、镜像数量以及系统配置。

# 查看 Docker 系统信息
docker info

3. docker system df

查看 Docker 的磁盘使用情况。

# 查看 Docker 磁盘使用情况
docker system df

4. docker system prune

删除未使用的所有数据,包括停止的容器、未使用的网络、未打标签的镜像和未使用的数据卷。

docker system prune [OPTIONS]
常用选项
  • -a:包括所有未使用的镜像。
  • --volumes:包括未使用的数据卷。
示例
# 删除未使用的所有数据
docker system prune

# 删除未使用的所有镜像和数据
docker system prune -a

# 删除未使用的所有数据和数据卷
docker system prune --volumes

5. docker stats

实时显示容器的资源使用情况。

docker stats [OPTIONS] [CONTAINER...]
示例
# 显示所有容器的资源使用情况
docker stats

# 显示特定容器的资源使用情况
docker stats my_container

6. docker events

查看 Docker 的实时事件。

docker events [OPTIONS]
示例
# 查看 Docker 的实时事件
docker events

7. docker login

登录到 Docker Registry(如 Docker Hub)。

docker login [OPTIONS] [SERVER]
示例
# 登录到 Docker Hub
docker login

# 登录到自定义 Registry
docker login myregistry.com

8. docker logout

登出 Docker Registry。

docker logout [SERVER]
示例
# 登出 Docker Hub
docker logout

# 登出自定义 Registry
docker logout myregistry.com

Docker Compose 常用命令

Docker Compose 是用于定义和运行多容器 Docker 应用程序的工具,下面是一些常用的 Docker Compose 命令:

1. docker-compose up

构建、启动并运行 Compose 定义的所有服务。

docker-compose up [OPTIONS] [SERVICE...]
常用选项
  • -d:后台运行容器。
  • --build:构建镜

像前先构建服务。

  • --remove-orphans:删除未在 docker-compose.yml 文件中定义的容器。
示例
# 启动所有服务
docker-compose up

# 后台运行所有服务
docker-compose up -d

# 启动指定服务
docker-compose up my_service

2. docker-compose down

停止并删除 Compose 定义的容器、网络和数据卷。

docker-compose down [OPTIONS]
常用选项
  • --volumes:删除与容器关联的数据卷。
示例
# 停止并删除所有服务
docker-compose down

# 删除服务及其数据卷
docker-compose down --volumes

3. docker-compose build

构建或重新构建服务镜像。

docker-compose build [OPTIONS] [SERVICE...]
常用选项
  • --no-cache:构建镜像时不使用缓存。
  • --pull:始终尝试拉取更新的镜像。
示例
# 构建所有服务的镜像
docker-compose build

# 构建指定服务的镜像
docker-compose build my_service

# 不使用缓存构建镜像
docker-compose build --no-cache

4. docker-compose ps

列出项目中的容器。

docker-compose ps [OPTIONS] [SERVICE...]
示例
# 列出所有服务
docker-compose ps

# 列出指定服务
docker-compose ps my_service

5. docker-compose logs

查看服务的输出日志。

docker-compose logs [OPTIONS] [SERVICE...]
常用选项
  • -f:实时跟踪日志输出。
  • --tail:显示日志的最后 N 行。
示例
# 查看所有服务的日志
docker-compose logs

# 查看指定服务的日志
docker-compose logs my_service

# 实时跟踪日志输出
docker-compose logs -f

# 显示最后 100 行日志
docker-compose logs --tail 100

6. docker-compose exec

在服务容器内执行命令。

docker-compose exec [OPTIONS] SERVICE COMMAND [ARG...]
常用选项
  • -d:后台执行命令。
  • --user:指定用户执行命令。
示例
# 在服务容器内执行命令
docker-compose exec my_service ls /app

# 以 root 用户执行命令
docker-compose exec --user root my_service ls /root

7. docker-compose restart

重启服务。

docker-compose restart [OPTIONS] [SERVICE...]
示例
# 重启所有服务
docker-compose restart

# 重启指定服务
docker-compose restart my_service

8. docker-compose stop

停止服务。

docker-compose stop [OPTIONS] [SERVICE...]
示例
# 停止所有服务
docker-compose stop

# 停止指定服务
docker-compose stop my_service

9. docker-compose start

启动已停止的服务。

docker-compose start [SERVICE...]
示例
# 启动所有已停止的服务
docker-compose start

# 启动指定服务
docker-compose start my_service

10. docker-compose rm

删除停止的服务容器。

docker-compose rm [OPTIONS] [SERVICE...]
常用选项
  • -f:强制删除,不询问确认。
  • -v:删除与容器关联的数据卷。
示例
# 删除所有停止的服务容器
docker-compose rm

# 强制删除停止的服务容器
docker-compose rm -f

# 删除容器及其数据卷
docker-compose rm -v

结语

以上列出了 Docker 及 Docker Compose 中常用的命令,这些命令覆盖了 Docker 日常使用中的大部分场景。从容器管理、镜像处理、数据卷、网络配置到系统管理,每个命令都提供了丰富的选项,以满足不同的需求。希望这些命令的详细介绍能帮助你更好地理解和使用 Docker。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值