2026-03-21
开发工具
00

目录

Docker 实用入门与常用命令速查表
Docker 的一键安装与启动
一、 Docker 核心概念速览
二、 镜像相关命令 (Image Commands)
1. 查找与获取镜像
2. 查看与管理镜像
3. 构建与推送镜像
三、 容器相关命令 (Container Commands)
1. 容器的创建与运行
2. 状态控制
3. 进入容器与排错
4. 容器的删除与清理
四、 进阶实用命令 (高阶技巧)

Docker 实用入门与常用命令速查表

在现代软件开发和部署中,Docker 已经成为了不可或缺的工具。它完美解决了“在我的机器上明明能跑”的经典难题。本文将带你从零开始安装 Docker,快速梳理核心概念,并汇总日常开发和服务器运维中最常用的命令,建议收藏作为手边备忘录。


Docker 的一键安装与启动

对于大多数 Linux 发行版(如 Ubuntu、Debian、CentOS 等),Docker 官方提供了一个非常方便的一键自动化安装脚本,这也是在服务器上最快捷的安装方式。

1. 运行一键安装脚本:

bash
curl -fsSL [https://get.docker.com](https://get.docker.com) -o get-docker.sh sudo sh get-docker.sh

2. 启动 Docker 服务:

bash
sudo systemctl start docker

3. 设置 Docker 开机自启:

bash
sudo systemctl enable docker

(可选优化) 避免每次敲命令都要加 sudo 如果你当前使用的是非 root 用户,建议将当前用户加入 docker 用户组,这样以后执行 docker 命令就不需要提权了(执行后需退出终端重新登录生效):

bash
sudo usermod -aG docker $USER

一、 Docker 核心概念速览

在死记硬背命令之前,理解以下三个核心概念会让你的操作更加得心应手:

  • 镜像 (Image):可以理解为一个只读的安装包或者系统快照。它包含了运行应用程序所需的所有代码、运行环境、库和配置文件。
  • 容器 (Container):镜像运行时的实体。如果说镜像是类(Class),那么容器就是对象(Object)。你可以创建、启动、停止、删除容器,各个容器之间是相互隔离的。
  • 仓库 (Registry):集中存放镜像的地方(最著名的是 Docker Hub)。你可以从仓库拉取(Pull)别人做好的镜像,也可以将自己构建的镜像推送(Push)上去。

二、 镜像相关命令 (Image Commands)

镜像是容器运行的基础,以下是日常操作镜像的高频命令:

1. 查找与获取镜像

  • 搜索镜像docker search <关键词> (例如:docker search nginx 可以在 Docker Hub 查找相关镜像)
  • 拉取镜像docker pull <镜像名:标签> (如果不写标签,默认拉取 latest 最新版,例如:docker pull ubuntu:20.04)

2. 查看与管理镜像

  • 查看本地所有镜像docker images
  • 删除本地镜像docker rmi <镜像名/镜像ID> (注意:如果该镜像有对应的容器正在运行或已停止,需要先删除容器才能删除镜像)
  • 清理悬空镜像(虚悬镜像)docker image prune (用于清理那些没有标签、且没有被容器使用的废弃镜像,释放磁盘空间)

3. 构建与推送镜像

  • 基于 Dockerfile 构建镜像docker build -t <镜像名:标签> <dockerfile路径> (通常在项目根目录执行:docker build -t myapp:v1 .,注意末尾的点代表当前目录)
  • 推送镜像到远程仓库docker push <镜像名:标签> (推送前通常需要先使用 docker login 登录,并确保镜像名包含你的用户名/组织名)

三、 容器相关命令 (Container Commands)

容器的生命周期管理是我们日常敲得最多的命令:

1. 容器的创建与运行

  • 创建并启动容器(核心命令)
    bash
    docker run -d -p 8080:80 --name <容器名> <镜像名:标签>
    常用参数解析:
    • -d: 后台运行容器,并返回容器ID。
    • -p: 端口映射,格式为 宿主机端口:容器内部端口
    • --name: 为容器指定一个易记的名称。
    • -v: 目录挂载,格式为 宿主机目录:容器内目录(例如:-v /data/mysql:/var/lib/mysql),用于数据持久化。
    • --rm: 容器停止后自动删除(适合运行临时测试容器)。

2. 状态控制

  • 查看运行中的容器docker ps
  • 查看所有容器(包括已停止的)docker ps -a
  • 停止运行中的容器docker stop <容器名/容器ID>
  • 强制停止容器docker kill <容器名/容器ID>
  • 启动已停止的容器docker start <容器名/容器ID>
  • 重启容器docker restart <容器名/容器ID>

3. 进入容器与排错

  • 进入运行中的容器终端
    bash
    docker exec -it <容器名/容器ID> /bin/bash
    (注:如果是极简镜像如 Alpine,可能没有 bash,需要将 /bin/bash 换成 sh)
  • 查看容器日志
    bash
    docker logs -f --tail 100 <容器名/容器ID>
    (参数 -f 表示持续实时追踪输出,--tail 100 表示仅查看最后 100 行,非常适合排查报错)
  • 查看容器资源占用情况docker stats (类似 Linux 的 top 命令,实时显示 CPU、内存、网络 IO 占用)

4. 容器的删除与清理

  • 删除处于停止状态的容器docker rm <容器名/容器ID>
  • 强制删除正在运行的容器docker rm -f <容器名/容器ID>

四、 进阶实用命令 (高阶技巧)

这里补充几个在实际应用中经常能“救命”或极大提升效率的命令:

  • 宿主机与容器之间拷贝文件
    • 从容器拷出:docker cp <容器名>:/容器内路径 /宿主机路径
    • 拷入容器:docker cp /宿主机路径 <容器名>:/容器内路径
  • 查看 Docker 磁盘占用情况docker system df
  • 一键清理(慎用)docker system prune (一键清除所有停止的容器、未被任何容器引用的网络、未被使用的所有镜像和构建缓存。如果要顺便清理未被使用的挂载卷,可以加 -a --volumes)

总结: Docker 的命令虽然繁多,但其设计逻辑非常清晰。掌握了 imagecontainer 的核心操作规律,结合 -h--help 随时查阅参数,就能轻松应对绝大多数的开发和部署场景。

本文作者:Dryhten

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!