docker常用命令速记

🕒 2025-01-22 📁 其他 👤 laumy 🔥 58 热度

1. 镜像管理 (Images)

功能 命令 示例
拉取镜像 docker pull <image>:<tag> docker pull nginx:latest
查看本地镜像 docker images docker 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>.tar docker 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 ps docker 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)

发表你的看法

\t