Docker 命令提供了许多选项,用于执行各种任务,如运行、停止、管理容器、镜像、网络、卷等操作。下面将详细讲解 Docker 各个命令的主要选项以及它们的作用。
1. docker 命令的通用选项
这些选项可以在大多数 Docker 命令中使用,它们用于配置 Docker 引擎或全局设置。
-
-D,--debug:启用调试模式,输出更多调试信息。bashdocker --debug run nginx -
-H,--host:连接到 Docker 守护进程的地址,通常用于远程 Docker 主机的操作。bashdocker -H tcp://192.168.1.10:2376 run nginx -
--config:指定 Docker CLI 配置文件的目录,默认是~/.docker。bashdocker --config ~/my-docker-config/ run nginx -
--context:指定 Docker 上下文(context),用于管理多个 Docker 主机环境。bashdocker --context myremote run nginx -
--tls:启用与 Docker 守护进程的 TLS 安全连接。bashdocker --tls run nginx -
--tlsverify:启用 TLS 连接并验证服务器的 TLS 证书。bashdocker --tlsverify run nginx
2. 镜像操作选项
2.1 docker pull 选项
-
--all-tags:下载指定镜像的所有标签(版本)。bashdocker pull --all-tags nginx -
--platform:拉取适用于指定平台的镜像(如linux/amd64,linux/arm64)。bashdocker pull --platform linux/arm64 nginx
2.2 docker build 选项
-
-t,--tag:为构建的镜像指定名称和标签(版本)。bashdocker build -t myapp:1.0 . -
-f,--file:指定 Dockerfile 文件的路径(默认为Dockerfile)。bashdocker build -f ./Dockerfile.custom -t myapp:custom . -
--no-cache:不使用缓存,强制重新构建每一层。bashdocker build --no-cache -t myapp:1.0 . -
--build-arg:设置构建时的环境变量。bashdocker build --build-arg VERSION=1.0 -t myapp:1.0 . -
--platform:为指定平台构建镜像。bashdocker build --platform linux/amd64 -t myapp:1.0 .
3. 容器操作选项
3.1 docker run 选项
-
-d,--detach:以后台模式运行容器(守护进程模式)。bashdocker run -d nginx -
-i,--interactive:保持标准输入(stdin)打开,即使未附加终端。bashdocker run -i busybox -
-t,--tty:分配一个伪终端,通常与-i一起使用。bashdocker run -it ubuntu /bin/bash -
-p,--publish:将主机端口映射到容器端口,格式为主机端口:容器端口。bashdocker run -p 8080:80 nginx -
-P,--publish-all:随机将容器的所有公开端口映射到主机的高位端口。bashdocker run -P nginx -
--name:为容器指定一个自定义名称。bashdocker run --name mynginx nginx -
--rm:容器停止后自动删除容器。bashdocker run --rm nginx -
-e,--env:设置环境变量,传递到容器内部。bashdocker run -e "MY_VAR=value" nginx -
-v,--volume:挂载主机目录或数据卷到容器,格式为主机路径:容器路径。bashdocker run -v /host/data:/container/data nginx -
--network:指定容器连接到的网络。bashdocker run --network mynetwork nginx -
--restart:为容器设置重启策略(如no,on-failure,always)。bashdocker run --restart always nginx -
--cpus:限制容器可使用的 CPU 核数。bashdocker run --cpus="1.5" nginx -
--memory:限制容器可使用的内存大小。bashdocker run --memory="500m" nginx -
--gpus:为容器分配 GPU 资源(需要安装 NVIDIA Docker)。bashdocker run --gpus all tensorflow/tensorflow:latest-gpu
3.2 docker ps 选项
-
-a,--all:列出所有容器,包括未运行的容器。bashdocker ps -a -
-q,--quiet:仅显示容器的 ID。bashdocker ps -q -
--filter:根据条件过滤容器,如根据状态或名称。bashdocker ps --filter "status=exited" -
--format:自定义输出格式,类似于Go的模板语法。bashdocker ps --format "{{.ID}}: {{.Names}}"
3.3 docker stop 选项
-
-t,--time:等待容器停止的超时时间(默认 10 秒)。bashdocker stop -t 5 mycontainer
4. 网络操作选项
4.1 docker network create 选项
-
--driver:指定网络驱动(如bridge,overlay,host)。bashdocker network create --driver bridge mynetwork -
--subnet:指定自定义子网 CIDR。bashdocker network create --subnet=192.168.1.0/24 mynetwork -
--gateway:指定自定义网关 IP 地址。bashdocker network create --gateway=192.168.1.1 mynetwork -
--attachable:允许非 swarm 模式容器连接到 overlay 网络(仅用于overlay网络)。bashdocker network create --driver overlay --attachable myoverlay
5. 卷操作选项
5.1 docker volume create 选项
-
--driver:指定卷驱动程序(如local、云存储驱动等)。bashdocker volume create --driver local myvolume -
--opt:为卷驱动程序指定自定义选项。bashdocker volume create --opt type=tmpfs --opt device=tmpfs myvolume -
--label:为卷设置标签。bashdocker volume create --label project=myapp myvolume
5.2 docker volume rm 选项
-
-f,--force:强制删除卷,即使卷已被使用。bashdocker volume rm -f myvolume
6. 其他操作选项
6.1 docker exec 选项
-
-i,--interactive:保持标准输入打开。bashdocker exec -i mycontainer /bin/bash -
-t,--tty:分配一个伪终端。bashdocker exec -it mycontainer /bin/bash
6.2 docker logs 选项
- **`
-f, --follow`**:实时输出容器日志。
bash
docker logs -f mycontainer
-
--tail:仅显示日志的最后几行。bashdocker logs --tail 10 mycontainer
6.3 docker inspect 选项
-
--format:自定义输出格式,类似于Go的模板语法。bashdocker inspect --format '{{.State.Status}}' mycontainer
6.4 docker prune 选项
-
-a,--all:删除所有未使用的镜像,包括中间镜像。bashdocker system prune -a -
-f,--force:强制删除而不提示确认。bashdocker system prune -f
这是 Docker 中一些常用命令和选项的详细介绍。你可以根据需求选择不同的选项来进行操作。