Docker是一个开源的容器化平台,提供了许多命令来管理容器、镜像、网络等资源。以下是一些常用的Docker命令以及每个命令的详细解读:
容器管理
-
docker run - 在新容器中运行命令
- 用法:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
- 示例:
docker run -it ubuntu bash
- 解读:从指定的镜像启动一个新容器,并执行给定的命令。
-it
参数是交互式终端,ubuntu
是镜像名称,bash
是执行的命令。
- 用法:
-
docker ps - 列出容器
- 用法:
docker ps [OPTIONS]
- 示例:
docker ps -a
- 解读:列出当前正在运行的容器。使用
-a
选项可以列出所有容器,包括停止的。
- 用法:
-
docker start - 启动一个或多个已停止的容器
- 用法:
docker start [OPTIONS] CONTAINER [CONTAINER...]
- 示例:
docker start my_container
- 解读:启动一个或多个已经停止的容器。
- 用法:
-
docker stop - 停止一个或多个运行中的容器
- 用法:
docker stop [OPTIONS] CONTAINER [CONTAINER...]
- 示例:
docker stop my_container
- 解读:停止一个或多个运行中的容器。
- 用法:
-
docker restart - 重启一个或多个容器
- 用法:
docker restart [OPTIONS] CONTAINER [CONTAINER...]
- 示例:
docker restart my_container
- 解读:重启一个或多个容器。
- 用法:
-
docker rm - 删除一个或多个容器
- 用法:
docker rm [OPTIONS] CONTAINER [CONTAINER...]
- 示例:
docker rm my_container
- 解读:删除一个或多个容器。可以使用容器的ID或名称。
- 用法:
-
docker exec - 在运行的容器中执行命令
- 用法:
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
- 示例:
docker exec -it my_container bash
- 解读:在运行中的容器中执行指定的命令。
-it
参数是交互式终端。
- 用法:
镜像管理
-
docker images - 列出镜像
- 用法:
docker images [OPTIONS] [REPOSITORY[:TAG]]
- 示例:
docker images
- 解读:列出本地的镜像。
- 用法:
-
docker pull - 从仓库拉取镜像
- 用法:
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
- 示例:
docker pull ubuntu
- 解读:从远程仓库拉取镜像到本地。
- 用法:
-
docker push - 将镜像推送到仓库
- 用法:
docker push NAME[:TAG]
- 示例:
docker push my_image
- 解读:将本地的镜像推送到远程仓库。
- 用法:
-
docker build - 从 Dockerfile 构建镜像
- 用法:
docker build [OPTIONS] PATH | URL | -
- 示例:
docker build -t my_image .
- 解读:从指定的 Dockerfile 构建镜像。
- 用法:
-
docker rmi - 删除一个或多个镜像
- 用法:
docker rmi [OPTIONS] IMAGE [IMAGE...]
- 示例:
docker rmi my_image
- 解读:删除一个或多个镜像。
- 用法:
网络管理
-
docker network ls - 列出网络
- 用法:
docker network ls
- 示例:
docker network ls
- 解读:列出所有的网络。
- 用法:
-
docker network create - 创建一个新网络
- 用法:
docker network create [OPTIONS] NETWORK
- 示例:
docker network create my_network
- 解读:创建一个新的 Docker 网络。
- 用法:
-
docker network connect - 连接容器到网络
- 用法:
docker network connect [OPTIONS] NETWORK CONTAINER
- 示例:
docker network connect my_network my_container
- 解读:将容器连接到指定的网络。
- 用法:
-
docker network disconnect - 断开容器与网络的连接
- 用法:
docker network disconnect [OPTIONS] NETWORK CONTAINER
- 示例:
docker network disconnect my_network my_container
- 解读:断开容器与指定网络的连接。
- 用法:
日志与信息
-
docker logs - 查看容器日志
- 用法:
docker logs [OPTIONS] CONTAINER
- 示例:
docker logs my_container
- 解读:查看容器的日志输出。
- 用法:
-
docker inspect - 显示容器详细信息
- 用法:
docker inspect [OPTIONS] NAME|ID [NAME|ID...]
- 示例:
docker inspect my_container
- 解读:显示容器的详细配置信息。
- 用法:
-
docker stats - 显示容器资源使用情况统计
- 用法:
docker stats [OPTIONS] [CONTAINER...]
- 示例:
docker stats my_container
- 解读:显示容器的资源使用情况,如 CPU、内存、网络等。
- 用法:
-
docker top - 显示容器中运行的进程信息
- 用法:
docker top CONTAINER [ps OPTIONS]
- 示例:
docker top my_container
- 解读:显示容器中运行的进程信息。
- 用法:
数据卷
-
docker volume ls - 列出数据卷
- 用法:
docker volume ls [OPTIONS]
- 示例:
docker volume ls
- 解读:列出所有数据卷。
- 用法:
-
docker volume create - 创建一个新数据卷
- 用法:
docker volume create [OPTIONS] [VOLUME]
- 示例:
docker volume create my_volume
- 解读:创建一个新的数据卷。
- 用法:
-
docker volume rm - 删除一个或多个数据卷
- 用法:
docker volume rm [OPTIONS] VOLUME [VOLUME...]
- 示例:
docker volume rm my_volume
- 解读:删除一个或多个数据卷。
- 用法:
-
docker volume inspect - 显示数据卷详细信息
- 用法:
docker volume inspect [OPTIONS] VOLUME [VOLUME...]
- 示例:
docker volume inspect my_volume
- 解读:显示数据卷的详细配置信息。
- 用法:
-
docker cp - 在容器与本地文件系统之间复制文件或目录
- 用法:`docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
- 示例:
docker cp my_container:/app/file.txt /local/path
- 解读:从容器中复制文件或目录到本地文件系统,或者从本地文件系统复制到容器中。
Docker Compose
-
docker-compose up - 启动容器(从 docker-compose.yml 文件)
- 用法:
docker-compose up [options]
- 示例:
docker-compose up -d
- 解读:从 docker-compose.yml 文件启动容器,
-d
参数表示在后台运行。
- 用法:
-
docker-compose down - 停止并删除容器、网络、数据卷
- 用法:
docker-compose down [options]
- 示例:
docker-compose down -v
- 解读:停止并删除通过 docker-compose 启动的容器、网络、数据卷,
-v
参数表示同时删除数据卷。
- 用法:
-
docker-compose exec - 在容器内部执行命令
- 用法:
docker-compose exec [options] SERVICE COMMAND [ARGS...]
- 示例:
docker-compose exec web bash
- 解读:在指定服务的容器内部执行命令,例如在名为 "web" 的服务容器内启动交互式 bash。
- 用法:
Swarm 模式
-
docker swarm init - 初始化 Swarm 模式
- 用法:
docker swarm init [OPTIONS]
- 示例:
docker swarm init --advertise-addr <MANAGER-IP>
- 解读:在当前节点上初始化 Swarm 集群。
- 用法:
-
docker swarm join - 将节点加入到 Swarm 集群
- 用法:
docker swarm join [OPTIONS] HOST:PORT
- 示例:
docker swarm join --token <TOKEN> <MANAGER-IP>:<PORT>
- 解读:将节点加入到指定的 Swarm 集群。
- 用法:
-
docker swarm leave - 使节点离开 Swarm 集群
- 用法:
docker swarm leave [OPTIONS]
- 示例:
docker swarm leave --force
- 解读:使当前节点离开 Swarm 集群。
- 用法:
-
docker service - 管理 Swarm 模式下的服务
- 用法:
docker service [OPTIONS] COMMAND [SERVICE]
- 示例:
docker service ls
- 解读:在 Swarm 模式下管理服务,例如列出所有服务。
- 用法:
-
docker stack - 管理 Swarm 模式下的堆栈(应用)
- 用法:
docker stack [OPTIONS] COMMAND [STACK]
- 示例:
docker stack deploy -c docker-compose.yml myapp
- 解读:在 Swarm 模式下部署堆栈,使用
docker-compose.yml
中定义的服务。
- 用法:
其他常用命令
-
docker login - 登录到 Docker Hub 或者其他 Docker Registry
- 用法:
docker login [OPTIONS] [SERVER]
- 示例:
docker login my.registry.com
- 解读:登录到指定的 Docker Registry。
- 用法:
-
docker logout - 退出登录
- 用法:
docker logout [SERVER]
- 示例:
docker logout my.registry.com
- 解读:退出当前 Docker Registry 的登录状态。
- 用法:
-
docker buildx - 多架构镜像构建工具
- 用法:
docker buildx [OPTIONS] COMMAND
- 示例:
docker buildx build --platform linux/amd64,linux/arm64 -t myapp .
- 解读:使用 Buildx 构建多架构镜像,可以指定不同平台的构建参数。
- 用法:
-
docker system prune - 清理系统资源
- 用法:
docker system prune [OPTIONS]
- 示例:
docker system prune -a
- 解读:清理未使用的数据,如停止的容器、未使用的镜像、未使用的网络等。
- 用法:
这些是一些常用的 Docker 命令及其简要解释。实际使用中可以根据需求进一步查阅 Docker 官方文档以获取更详细的信息和参数说明。