首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Docker命令速查表​

Docker命令速查表​

原创
作者头像
timerring
修改2025-06-06 01:00:31
修改2025-06-06 01:00:31
2300
举报

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

一、守护进程(Daemon)管理

核心命令

代码语言:bash
复制
systemctl start docker          # 启动Docker服务  
systemctl stop docker           # 停止Docker服务  
systemctl restart docker        # 重启Docker服务  
systemctl status docker         # 查看服务状态  
systemctl enable docker         # 设置开机自启  

状态查询

代码语言:bash
复制
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清理悬空镜像)

代码语言:bash
复制
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 # 加载镜像包
悬空镜像清理
代码语言:bash
复制
docker images -f dangling=true  # 查看悬空镜像(无标签的旧版本镜像)  
docker rmi $(docker images -q -f dangling=true)  # 批量删除悬空镜像  

三、Docker Hub 操作

登录与搜索

代码语言:bash
复制
docker login -u timerring       # 登录Docker Hub  
docker search nginx            # 搜索官方镜像(`--filter stars=3`按星级过滤)  

镜像发布

代码语言:bash
复制
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同时删除关联卷)

代码语言:bash
复制
docker run -p 8080:80 -v /data:/app/data --name web-server nginx:alpine  # 映射端口+挂载卷  

交互与调试

代码语言:bash
复制
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        # 查看容器内运行的进程  

数据管理

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

批量清理

代码语言:bash
复制
docker container prune          # 删除所有已停止的容器  
docker system prune -a          # 清理所有无用镜像、容器、卷(谨慎使用!)  

五、数据卷(Volumes)操作

核心命令

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

卷挂载

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

关联容器

代码语言:bash
复制
docker run --volumes-from my-container --name web2 nginx  # 复用已有容器的卷配置  

六、网络与端口映射

端口映射

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

网络模式

代码语言:bash
复制
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  # 同一网络内容器可通过容器名直接通信  

七、资源限制

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

八、进阶技巧

Dockerfile 构建镜像

代码语言: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"]  

构建命令:

代码语言:bash
复制
docker build -t my-python-app:v1 .  # `-f`指定Dockerfile路径,`--no-cache`禁用缓存  

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

代码语言:dockerfile
复制
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命令速查表

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、守护进程(Daemon)管理
    • 核心命令
    • 状态查询
  • 二、镜像(Images)操作
    • 基础命令
    • 高级操作
      • 镜像导入/导出
      • 悬空镜像清理
  • 三、Docker Hub 操作
    • 登录与搜索
    • 镜像发布
  • 四、容器(Containers)管理
    • 生命周期控制
    • 交互与调试
    • 数据管理
    • 批量清理
  • 五、数据卷(Volumes)操作
    • 核心命令
    • 卷挂载
      • 命名卷(推荐)
      • 主机目录挂载
    • 关联容器
  • 六、网络与端口映射
    • 端口映射
    • 网络模式
  • 七、资源限制
  • 八、进阶技巧
    • Dockerfile 构建镜像
    • 多阶段构建(减少镜像体积)
  • 九、常用快捷键
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档