Docker命令速查表​

简介: 本文翻译自我的英文博客,最新修订内容可随时参考: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命令速查表

目录
相关文章
|
7月前
|
存储 Java Linux
【Docker】(2)还在浏览网页寻找Docker命令?本文全面列举与使用Docker里的各个命令!想要什么命令直接从本文拿!
docker有着比VM更少的抽象层 由于Docker不需要Hypervisor实现硬件资源虚拟化,运行在Docker容器上的程序直接使用的都是实际物理机的硬件资源 因此在CPU、内存利用率上Docker将会在效率上有明显优势 docker利用的时宿主机的内核,而不需要加载操作系统OS内核 当新建一个容器时,Docker不需要和虚拟机一样重新加载一个操作系统内核 进而避免引寻、加载操作系统内核返回等比较费时费资源的过程,当新建一个虚拟机时,虚拟机软件需要加载OS,返回新建过程时分钟级别的。 而Docker由于直接利用宿主机的操作系统,则省略了返回过程,因此新建一个Docker容器只需
818 124
|
10月前
|
安全 Unix Linux
Docker中授权普通用户使用docker命令以及解决无权限访问/var/run/docker.sock错误。
通过上述步骤,可以有效解决普通用户无法使用Docker命令的问题,同时处理 `/var/run/docker.sock`权限错误。这样的设置不仅方便用户使用Docker提供的各项服务,同时还能保护系统的安全性。在进行此类配置更改时,请确保理解每一步骤的作用及潜在的安全风险,尤其是在修改文件权限时。在实际的操作中,始终应该努力保持系统的最低必要权限,避免过度放宽权限,这是保障系统安全的一个重要方针。
3334 75
|
11月前
|
Docker 容器
Docker run命令-p参数详解
本文介绍Docker端口映射的基础用法。通过`docker run -p <宿主机端口>:<容器端口>`实现端口映射,例如`-p 5000:80`将宿主机5000端口映射到容器80端口,外部访问宿主机5000端口时流量会转发至容器内部的80端口。示例命令中,`-d`用于后台运行,`--restart=always`确保容器自动重启,`--name`指定容器名称。部署完成后可通过`http://服务器IP地址:5000`验证服务是否正常运行。
1308 57
|
12月前
|
网络协议 Ubuntu Docker
Docker Compose--命令说明
Docker Compose--命令说明
2114 30
|
10月前
|
Docker 容器
熟悉Docker容器管理命令:start、stop与restart详细使用指南
掌握这些Docker容器管理命令对于维护应用程序的正常运行至关重要。在实际操作中,应注意容器配置、关联资源以及日志等信息,确保各项操作都能够顺畅并且安全地执行。
2823 0
|
Ubuntu Linux 开发者
常用的Docker命令:docker_cmd_sheet
以上就是一些常用的Docker命令,希望能帮助你更好地驾驭这个强大的工具。记住,Docker就像是一个魔法咒语,只有真正理解和熟练使用,才能发挥出它的最大魔力。
238 22
|
Shell 应用服务中间件 nginx
docker 镜像的部分常用命令
docker镜像常用命令
347 16
|
关系型数据库 MySQL Docker
|
关系型数据库 MySQL 数据库
Docker 安装常用软件相关命令
本文介绍了在CentOS 7.9系统上安装Docker的详细步骤,包括添加阿里云镜像源、安装Docker及相关组件、启动服务以及配置镜像加速。同时,还展示了如何通过Docker安装MySQL 5.7版本数据库,涵盖拉取镜像、创建数据目录、运行容器及配置挂载点等操作,并提供验证安装成功的命令和截图。适合需要部署Docker与MySQL环境的用户参考。
739 4
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
539 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解

热门文章

最新文章