Docker命令速查表​

本文翻译自我的英文博客,最新修订内容可随时参考:Docker命令速查表

一、守护进程(Daemon)管理

核心命令

systemctl start docker          # 启动Docker服务  
systemctl stop docker           # 停止Docker服务  
systemctl restart docker        # 重启Docker服务  
systemctl status docker         # 查看服务状态  
systemctl enable docker         # 设置开机自启  

状态查询

docker info                      # 查看Docker系统信息(版本、存储驱动、容器/镜像数量等)  
docker system df                 # 查看磁盘占用(镜像、容器、卷的空间使用情况)  

二、镜像(Images)操作

基础命令

命令说明
docker images列出本地所有镜像
docker pull ubuntu:22.04拉取指定版本的Ubuntu镜像(docker.io/library/ubuntu:22.04的简写)
docker inspect ubuntu:22.04查看镜像详细元数据(分层、作者、环境变量等)
docker rmi ubuntu:22.04删除指定镜像(-f强制删除,-prune清理悬空镜像)
docker tag my-image:v1 timerring/my-image:v1  # 重命名镜像并添加仓库前缀  

高级操作

镜像导入/导出
  • 轻量级快照(export/import)
    docker export -o ubuntu.tar my-container  # 导出容器当前状态为tar包(不包含历史层)  
    docker import ubuntu.tar my-ubuntu:v1     # 从tar包创建新镜像  
    
  • 完整镜像备份(save/load)
    docker save -o ubuntu-all.tar ubuntu:20.04 ubuntu:22.04  # 打包多个镜像  
    docker load -i ubuntu-all.tar                           # 加载镜像包  
    
悬空镜像清理
docker images -f dangling=true  # 查看悬空镜像(无标签的旧版本镜像)  
docker rmi $(docker images -q -f dangling=true)  # 批量删除悬空镜像  

三、Docker Hub 操作

登录与搜索

docker login -u timerring       # 登录Docker Hub  
docker search nginx            # 搜索官方镜像(`--filter stars=3`按星级过滤)  

镜像发布

docker tag my-app:v1 timerring/my-app:v1  # 添加仓库前缀  
docker push timerring/my-app:v1          # 推送镜像到Docker Hub  

四、容器(Containers)管理

生命周期控制

命令说明
docker run -itd ubuntu:22.04拉取并运行容器(-i交互模式,-t分配终端,-d后台运行)
docker ps列出运行中容器(-a显示所有容器,-q仅返回ID)
docker start/stop/restart my-container启停/重启容器
docker rm my-container删除容器(-f强制删除运行中的容器,-v同时删除关联卷)
docker run -p 8080:80 -v /data:/app/data --name web-server nginx:alpine  # 映射端口+挂载卷  

交互与调试

docker attach my-container     # 进入容器终端(`Ctrl+P + Ctrl+Q`退出但不停止容器)  
docker exec -it my-container bash  # 在运行的容器中执行命令(推荐方式)  
docker logs -f my-container    # 实时查看容器日志(`--tail 100`显示最后100行)  
docker top my-container        # 查看容器内运行的进程  

数据管理

docker cp host-file.txt my-container:/app/  # 复制文件到容器  
docker commit my-container my-image:v2     # 将容器状态保存为新镜像(不推荐用于构建,仅作快照)  

批量清理

docker container prune          # 删除所有已停止的容器  
docker system prune -a          # 清理所有无用镜像、容器、卷(谨慎使用!)  

五、数据卷(Volumes)操作

核心命令

docker volume create my-vol     # 创建命名卷  
docker volume ls                # 列出所有卷  
docker volume inspect my-vol    # 查看卷详情(存储路径、驱动等)  
docker volume rm my-vol         # 删除卷  

卷挂载

命名卷(推荐)
docker run --mount source=my-vol,target=/app/data nginx  # 挂载命名卷到容器路径  
主机目录挂载
docker run -v /host/path:/container/path:ro nginx  # 挂载主机目录(`:ro`设为只读)  

关联容器

docker run --volumes-from my-container --name web2 nginx  # 复用已有容器的卷配置  

六、网络与端口映射

端口映射

docker run -p 80:80 -p 443:443 nginx  # 映射宿主机端口到容器端口(宿主机:容器)  
docker port my-container 80            # 查看容器端口映射情况  

网络模式

docker run --network host nginx        # 使用宿主机网络(容器直接暴露端口,无需映射)  
docker network create my-net           # 创建自定义网络(用于容器间通信)  
docker run --network my-net --name web1 nginx  
docker run --network my-net --name web2 nginx  # 同一网络内容器可通过容器名直接通信  

七、资源限制

docker run --memory 2g --cpu-shares 512 my-app  # 限制容器内存为2GB,CPU权重512  
docker update my-container --memory 4g          # 动态调整运行中容器的资源限制  

八、进阶技巧

Dockerfile 构建镜像

FROM python:3.10-slim  
WORKDIR /app  
COPY requirements.txt .  
RUN pip install --no-cache-dir -r requirements.txt  
COPY . .  
CMD ["python", "app.py"]  

构建命令:

docker build -t my-python-app:v1 .  # `-f`指定Dockerfile路径,`--no-cache`禁用缓存  

多阶段构建(减少镜像体积)

FROM golang:1.20 as builder  
WORKDIR /app  
COPY . .  
RUN go build -o my-app  

FROM alpine:3.17  
COPY --from=builder /app/my-app /usr/bin/my-app  
CMD ["my-app"]  

九、常用快捷键

  • 进入容器后保持后台运行:Ctrl+P + Ctrl+Q
  • 容器内退出并停止容器:exit
  • 强制停止容器:docker kill my-container

总结

掌握以上命令即可覆盖80%的日常Docker操作。建议结合实际场景练习,例如:

  1. docker run -p 80:80 nginx快速启动一个Web服务器。
  2. 通过docker exec进入容器修改配置,再用docker commit制作自定义镜像。
  3. 使用卷挂载实现容器数据持久化(如数据库数据存储)。

如需深入学习Docker Compose或Kubernetes集群管理,欢迎访问博客获取更多资源:Docker命令速查表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

timerring

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值