docker常用命令速记

1. 镜像管理 (Images)

功能命令示例
拉取镜像docker pull <image>:<tag>docker pull nginx:latest
查看本地镜像docker imagesdocker images
删除镜像docker rmi <image_id>docker rmi fce28
构建镜像docker build -t <name>:<tag> .docker build -t myapp:v1 .
镜像改名/打标docker tag <old> <new>docker tag myapp:v1 repo/myapp:v1
导出镜像docker save -o <file>.tar <img>docker save -o nginx.tar nginx
导入镜像docker load -i <file>.tardocker load -i nginx.tar

2. 容器生命周期 (Containers)

功能命令常用选项
创建并运行docker run <image>-d后台, -p端口映射, --name命名,
启动容器docker start <id/name>docker start my_web
停止容器docker stop <id/name>docker stop my_web
重启容器docker restart <id/name>docker restart my_web
删除容器docker rm <id/name>docker rm -f (强制删除运行中的)
查看运行中容器docker psdocker ps
查看所有容器docker ps -a包含已停止的容器

针对docker run的参数特别补充一下。

参数说明示例
-d后台运行容器(Detached mode),返回容器 ID-d
-it交互式终端-i 保持输入流,-t 分配伪终端-it
--name为容器指定一个自定义名称--name my-web
--rm容器停止后自动删除(常用于临时测试)--rm
--restart重启策略 (no, on-failure, always, unless-stopped)--restart always
-p发布端口 (宿主机端口:容器端口)-p 8080:80
-P随机映射容器内暴露的所有端口到宿主机高位端口-P
--network将容器连接到指定网络--network my-net
--ip为容器指定固定 IP (需在自定义网络下)--ip 172.18.0.10
--add-host在容器 /etc/hosts 中添加一条主机映射--add-host db:192.168.1.5
--dns指定容器使用的 DNS 服务器--dns 8.8.8.8
-v挂载数据卷/目录 (宿主机路径:容器路径:读写权限)-v /data:/app:ro (ro=只读)
--mount更显式的挂载方式(推荐),支持 type=bind/volume--mount type=bind,src=/a,dst=/b
--volumes-from从另一个容器挂载所有卷--volumes-from storage-container
-w指定容器内的工作目录 (Working directory)-w /usr/src/app
-e设置环境变量-e MYSQL_ROOT_PASSWORD=123
--env-file从指定文件读取环境变量--env-file .env.list
-u指定运行容器的用户名或 UID-u root-u 1001
--entrypoint覆盖镜像默认的入口程序--entrypoint /bin/sh
-m限制容器使用的最大内存-m 512m
--cpus限制容器使用的 CPU 核心数--cpus="1.5"
--memory-reservation设置内存软限制(预留内存)--memory-reservation 256m
--cpuset-cpus绑定容器到特定 CPU 核心运行--cpuset-cpus="0,3"

3. 运维与交互 (Ops & Debug)

功能命令备注
进入容器内部docker exec -it <id> /bin/bash退出按 exitCtrl+P+Q
查看容器日志docker logs -f <id>-f 实时追踪, --tail 100 最新100行
查看详细信息docker inspect <id>获取 IP、挂载路径等完整配置
查看资源占用docker stats实时查看 CPU/内存/网络占用
文件拷贝docker cp <src> <dest>docker cp index.html my_web:/var/www/
修改容器名docker rename <old> <new>docker rename old_name new_name

4. 网络与数据卷 (Network & Volume)

类型命令说明
网络docker network ls查看所有网络
docker network create <name>创建自定义网络
数据卷docker volume ls查看所有数据卷
docker volume create <name>创建持久化数据卷
docker volume prune清理未使用的卷

5. 系统清理 (Cleanup)

功能命令说明
查看空间占用docker system df查看 Docker 各部分占用的磁盘
自动清理docker system prune删除已停止容器、未使用网络和悬挂镜像
彻底清理docker system prune -a删除所有未使用的镜像(慎用)

6. 常用命令组合

  • 启动一个带端口映射的 Nginx: docker run -d -p 8080:80 --name mynginx nginx
  • 查看容器 IP: docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <container_id>
  • 清理所有退出状态的容器: docker rm $(docker ps -a -q -f status=exited)

评论