以下是对 Docker 核心命令的 系统化整理,包含 详细中文注释参数说明,并补充了 卷(Volume)网络(Network) 的配置细节,适合作为日常参考手册。


一、镜像管理命令

1. 构建镜像

docker build [OPTIONS] PATH
  • -t:指定镜像名称和标签(tag)
  • --build-arg:设置构建时参数(如环境变量)
  • --no-cache:禁用缓存以确保全新构建
  • --pull:始终尝试拉取最新基础镜像

示例:

docker build -t myapp:1.0 --build-arg ENV_NAME=dev .

2. 拉取/推送镜像

docker pull [OPTIONS] NAME[:TAG]
docker push [OPTIONS] NAME[:TAG]
  • --all-tags-a:拉取所有标签(仅适用于 pull)
  • --disable-content-trust:禁用内容信任(默认启用)

示例:

docker pull nginx:latest
docker push myapp:1.0

3. 查看和删除镜像

docker images [OPTIONS]
docker rmi [OPTIONS] IMAGE [IMAGE...]
  • -a:显示所有镜像(含中间层)
  • --filter:过滤条件(如 dangling=true 删除无标签镜像)

示例:

docker images -a
docker rmi myapp:1.0

二、容器管理命令

1. 创建并启动容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • -d:后台运行(分离模式)
  • --name:指定容器名称
  • -p:端口映射(格式:主机端口:容器端口
  • -v:挂载卷(格式:主机路径:容器路径
  • --network:指定网络模式(如 hostbridge
  • --env-e:设置环境变量
  • --rm:容器退出后自动删除

示例:

docker run -d --name web -p 80:80 -v /data:/usr/share/nginx/html nginx

2. 容器生命周期控制

docker start [OPTIONS] CONTAINER [CONTAINER...]
docker stop [OPTIONS] CONTAINER [CONTAINER...]
docker restart [OPTIONS] CONTAINER [CONTAINER...]
docker kill [OPTIONS] CONTAINER [CONTAINER...]
  • --time-t:停止容器前等待的秒数(默认 10 秒)

示例:

docker stop web
docker restart web

3. 查看容器状态

docker ps [OPTIONS]
docker inspect [OPTIONS] CONTAINER|IMAGE|VOLUME
  • -a:显示所有容器(含停止的)
  • -f:过滤条件(如 status=running
  • --format:自定义输出格式(如 {{.Status}}

示例:

docker ps -a -f "status=exited"
docker inspect web

4. 容器交互与调试

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
docker logs [OPTIONS] CONTAINER
docker top [OPTIONS] CONTAINER
  • -it:交互式终端(常用于 exec)
  • -f:实时输出日志(类似 tail -f)
  • --tail:显示最后 N 条日志

示例:

docker exec -it web sh
docker logs -f --tail 100 web

三、卷(Volume)管理

1. 创建卷

docker volume create [OPTIONS] VOLUME_NAME
  • --driver:指定卷驱动(默认 local)
  • --opt:驱动特定选项(如 type=tmpfs

示例:

docker volume create mydata

2. 挂载卷

docker run -v mydata:/path/in/container image_name
  • --mount:更灵活的挂载方式(支持多种类型)

    • type=volume|bind|tmpfs
    • source:源路径(卷名或主机路径)
    • destination:容器内目标路径

示例:

docker run --mount type=volume,source=mydata,destination=/data alpine ls /data

3. 卷清理

docker volume ls
docker volume rm VOLUME_NAME
docker volume prune
  • prune:删除无用卷(未被任何容器使用的卷)

四、网络(Network)管理

1. 创建自定义网络

docker network create [OPTIONS] NETWORK_NAME
  • --driver:指定网络驱动(默认 bridge)
  • --subnet:自定义子网(如 192.168.0.0/24

示例:

docker network create --driver bridge --subnet 192.168.1.0/24 mynet

2. 管理容器网络

docker network connect [OPTIONS] NETWORK CONTAINER
docker network disconnect [OPTIONS] NETWORK CONTAINER
  • connect:将容器加入网络
  • disconnect:将容器移出网络

示例:

docker network connect mynet web

3. 查看网络信息

docker network ls
docker network inspect NETWORK_NAME
  • inspect:显示网络详细信息(如容器 IP、子网等)

五、资源限制与安全

1. 资源限制

docker run --memory="200m" --cpus="0.5" image_name
  • --memory:内存限制(如 200m 表示 200MB)
  • --cpus:CPU 份额(如 0.5 表示 50% 的单核 CPU)

2. 安全加固

docker run --security-opt=no-new-privileges --user=1000:1000 image_name
  • --security-opt=no-new-privileges:禁止提升权限
  • --user:以非 root 用户运行容器(提升安全性)

六、日志与监控

1. 实时监控容器状态

docker stats [OPTIONS] [CONTAINER...]
  • --all:显示所有容器(默认只显示运行中的)
  • --format:自定义输出格式

示例:

docker stats --all

2. 日志分析

docker logs -f --tail 100 container_name
  • -f:实时输出日志(类似 tail -f)
  • --tail:显示最后 N 条日志

七、其他实用命令

1. 清理无用资源

docker system prune -a
  • -a:删除所有未使用的镜像、容器、卷和网络

2. 容器事件监控

docker events --since 1h
  • --since:查看最近一段时间的事件(如 1h 表示过去 1 小时)

3. 获取容器 IP 地址

docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name

八、常见问题排查命令

1. 查看容器内部文件系统

docker exec -it container_name sh

2. 检查卷挂载情况

docker inspect container_name | grep Mounts

3. 网络连通性测试

docker exec -it container_name ping other_container_ip

总结

通过以上整理,您可掌握 Docker 的全链路操作命令,涵盖镜像构建、容器管理、卷与网络配置、资源限制、安全加固等核心内容。建议结合实际场景,灵活组合命令,例如:

# 构建并运行带卷和网络的容器
docker build -t myapp:1.0 .
docker network create mynet
docker volume create appdata
docker run -d --name app --network mynet -v appdata:/data myapp:1.0

如需进一步深入,可参考 Docker CLI 官方文档 获取完整参数说明。

每日更新-免费小火箭账号
不要错过任何机会,探索最新的应用和游戏,就在我们的平台。
立即访问
最后修改:2025 年 05 月 01 日
如果觉得我的文章对你有用,请随意赞赏