Docker 常用命令详解与参数说明 - 教程
Docker 是一个开源的应用容器引擎,它允许开发者将应用程序及其依赖打包到一个可移植的容器中。以下是对常用 Docker 命令的详细解释,包括每个命令中的参数含义、语法格式以及使用示例。
1. 镜像相关命令
查看本地已有的镜像
docker images [OPTIONS]
功能:列出本地所有已下载或构建的镜像。
参数说明:
[OPTIONS]:可选参数,例如:-a, --all:显示所有镜像(包括中间层镜像)。--digests:显示摘要信息。--no-trunc:不截断输出。
示例:
docker images
docker images -a
从远程仓库拉取镜像
docker pull [OPTIONS] NAME[:TAG|@DIGEST]
功能:从远程仓库(如 Docker Hub)下载指定镜像。
参数说明:
NAME:镜像名称,例如nginx,mysql,redis。TAG:镜像标签(版本),例如latest,8.0.36,6.2-alpine。DIGEST:镜像的唯一哈希值(用于精确匹配特定镜像)。[OPTIONS]:可选参数,例如:-a, --all-tags:拉取所有标签的镜像。
示例:
docker pull nginx:latest docker pull mysql@sha256:abc123... docker pull minio/minio:RELEASE.2022-01-04T07-41-07Z
构建镜像(基于 Dockerfile)
docker build [OPTIONS] PATH | URL | -
功能:根据当前目录下的
Dockerfile构建一个新的镜像。参数说明:
PATH:包含Dockerfile的本地路径(通常为当前目录URL:远程 Git 仓库地址。-:表示从标准输入读取内容。[OPTIONS]:可选参数,例如:-t, --tag stringArray:指定镜像名称和标签,例如my-app:latest。--build-arg key=value:传递构建时变量。--no-cache:不使用缓存。
示例:
docker build -t my-app . docker build -t my-app:v1 https://github.com/yourname/repo.git#main
删除本地镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]
功能:删除一个或多个本地镜像。
参数说明:
IMAGE:镜像名称或 ID,例如nginx,redis:6.2-alpine,f5f171121fa3。[OPTIONS]:可选参数,例如:-f, --force:强制删除镜像,即使有容器正在使用该镜像。
示例:
docker rmi nginx docker rmi redis:6.2-alpine mysql:8.0.36
导出镜像为 tar 文件
docker save [OPTIONS] IMAGE > FILE
功能:将一个或多个镜像打包成
.tar文件,便于备份或迁移。参数说明:
IMAGE:要导出的镜像名称或 ID。[OPTIONS]:可选参数,例如:-o, --output string:指定输出文件名。
示例:
docker save -o nginx.tar nginx docker save -o app-images.tar my-app:latest test-dev-doc-server:latest
导入镜像
docker load [OPTIONS] < FILE
功能:从
.tar文件中加载镜像。参数说明:
FILE:镜像文件路径。[OPTIONS]:可选参数,例如:-i, --input string:指定输入文件。
示例:
docker load -i nginx.tar
推送镜像到远程仓库
docker push [OPTIONS] NAME[:TAG]
功能:将本地镜像推送到远程仓库(如 Docker Hub 或私有 Registry)。
参数说明:
NAME:镜像名称,必须是已登录账户下的命名空间,例如username/myapp。TAG:镜像标签。[OPTIONS]:可选参数,例如:--disable-content-trust:禁用内容信任(默认启用)。
前提条件:
必须先使用
docker login登录远程仓库。
示例:
docker push my-app:latest
2. 容器相关命令
运行一个新的容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
功能:启动一个新的容器实例。
参数说明:
IMAGE:使用的镜像名称。[COMMAND] [ARG...]:覆盖镜像中的默认启动命令。[OPTIONS]:常见选项包括:-d:后台运行容器。-p HOST_PORT:CONTAINER_PORT:端口映射。--name string:指定容器名称。-v HOST_PATH:CONTAINER_PATH:挂载数据卷。-e KEY=VALUE:设置环境变量。
示例:
docker run -d -p 80:80 --name my-nginx nginx docker run -d -p 3306:3306 -v /host/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
列出正在运行的容器
docker ps [OPTIONS]
功能:列出当前正在运行的容器。
参数说明:
[OPTIONS]:可选参数,例如:-a:显示所有容器(包括停止的)。-q:仅显示容器 ID。
示例:
docker ps docker ps -a
查看当前运行的 MinIO 容器版本
docker exec -it minio minio --version
**说明**:
minio是容器名称(与NAMES列一致)。该命令会进入容器并执行
minio --version来输出版本号。
示例输出(仅供参考)
minio version RELEASE.2022-01-04T07-41-07Z
这个输出表示你正在使用的是 MinIO 的 RELEASE.2021-06-17 版本。
停止容器
docker stop CONTAINER_ID
功能:优雅地停止一个正在运行的容器。
参数说明:
CONTAINER_ID:容器 ID 或名称。
示例:
docker stop my-nginx
启动已停止的容器
docker start CONTAINER_ID
功能:重新启动一个已停止的容器。
参数说明:
CONTAINER_ID:容器 ID 或名称。
示例:
docker start my-nginx
重启容器
docker restart CONTAINER_ID
功能:重启一个正在运行的容器。
参数说明:
CONTAINER_ID:容器 ID 或名称。
示例:
docker restart my-nginx
进入正在运行的容器
docker exec -it CONTAINER_ID /bin/bash
功能:进入容器内部执行命令。
参数说明:
-it:交互式终端模式。/bin/bash:容器内使用的 shell(如果容器没有 bash,可以尝试/bin/sh)。
示例:
docker exec -it my-nginx /bin/bash
删除容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
功能:删除一个或多个容器。
参数说明:
CONTAINER:容器 ID 或名称。[OPTIONS]:可选参数,例如:-f, --force:强制删除正在运行的容器。
示例:
docker rm my-nginx
查看容器日志
docker logs [OPTIONS] CONTAINER_ID
功能:查看容器的标准输出日志。
参数说明:
[OPTIONS]:可选参数,例如:-f:持续跟踪日志。--tail N:只显示最后 N 行。
示例:
docker logs my-nginx docker logs -f my-nginx
查看容器详细信息
docker inspect CONTAINER_ID
功能:查看容器的详细配置信息(IP、网络、存储等)。
参数说明:
CONTAINER_ID:容器 ID 或名称。
示例:
docker inspect my-nginx
复制文件到容器或从容器复制文件
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
功能:在宿主机和容器之间复制文件。
参数说明:
SRC_PATH:源路径。DEST_PATH:目标路径。
示例:
docker cp ./test.txt my-nginx:/tmp/test.txt docker cp my-nginx:/tmp/test.txt ./
3. 网络相关命令
创建自定义网络
docker network create [OPTIONS] NETWORK
功能:创建一个自定义网络(桥接、覆盖等)。
参数说明:
NETWORK:网络名称。[OPTIONS]:可选参数,例如:--driver bridge:指定网络驱动(默认为bridge)。--subnet CIDR:指定子网范围。
示例:
docker network create my-network
连接容器到网络
docker network connect NETWORK CONTAINER
功能:将容器加入到指定网络。
参数说明:
NETWORK:网络名称。CONTAINER:容器 ID 或名称。
示例:
docker network connect my-network my-nginx
断开容器与网络的连接
docker network disconnect NETWORK CONTAINER
功能:将容器从指定网络中断开。
参数说明:
NETWORK:网络名称。CONTAINER:容器 ID 或名称。
示例:
docker network disconnect my-network my-nginx
删除网络
docker network rm NETWORK
功能:删除一个未被使用的网络。
参数说明:
NETWORK:网络名称。
示例:
docker network rm my-network
4. 数据卷相关命令
创建数据卷
docker volume create VOLUME_NAME
功能:创建一个持久化数据卷。
参数说明:
VOLUME_NAME:数据卷名称。
示例:
docker volume create my-volume
挂载数据卷到容器
docker run -v VOLUME_NAME:PATH_IN_CONTAINER ...
功能:将数据卷挂载到容器的某个路径。
参数说明:
VOLUME_NAME:数据卷名称。PATH_IN_CONTAINER:容器内的目标路径。
示例:
docker run -d -v my-volume:/data --name my-container alpine
清理未使用的数据卷
docker volume prune
功能:删除所有未被使用的数据卷。
示例:
docker volume prune
5. 其他常用命令
查看 Docker 版本信息
docker version
功能:显示 Docker 客户端和服务器的版本信息。
查看 Docker 系统信息
docker info
功能:显示系统级信息,如容器数量、镜像数量、存储驱动等。
清理未使用的镜像、容器、网络和数据卷
docker system prune
功能:清理所有未使用的资源。
可选参数:
-a:同时删除所有未使用的镜像(不只是悬空镜像)。
示例:
docker system prune docker system prune -a
批量操作容器
获取所有容器 ID
docker ps -aq
批量停止容器
docker stop $(docker ps -aq)
批量删除容器
docker rm $(docker ps -aq)
批量删除镜像
docker rmi $(docker images -q)

浙公网安备 33010602011771号