1. 核心概念:别把 Docker 想复杂了

我们用“手机应用商店”来类比,三秒钟理解 Docker:

术语 类比 解释
镜像 (Image) App 安装包 它是静止的、只读的(比如微信安装包)。
容器 (Container) 运行中的 App 你点开微信,它跑起来了,这就是容器。
仓库 (Repository) 应用商店 你去哪里下载安装包(通常指 Docker Hub)。

一句话总结:我们从商店下载“镜像”,把它运行成“容器”。


2. 每天必用的 5 个“生存命令”

这 5 个命令覆盖了你 90% 的日常操作:

① 找安装包 (Pull)

  • docker pull <名字>

    • 示例:docker pull nginx

    • 人话:去应用商店把 Nginx 下载到本地。

② 运行程序 (Run) - 最核心

  • docker run -d -p 80:80 nginx

    • 人话:在后台启动 Nginx,并开放端口。

③ 查看状态 (Ps)

  • docker ps

    • 人话:打开任务管理器,看看现在有哪些 App 正在运行。

④ 停止运行 (Stop)

  • docker stop <容器ID>

    • 人话:把这个 App 关掉(数据保留,随时能再开)。

⑤ 删除清理 (Rm/Rmi)

  • docker rm <容器ID> (删容器/记录)

  • docker rmi <镜像名> (删镜像/安装包)

    • 人话:前者是清除运行记录,后者是彻底卸载安装包释放硬盘。


3. docker run 万能填空公式

docker run 是参数最多的命令,新手只要记住这个公式:

docker run -d --name <起名> -p <宿主端口>:<容器端口> -v <宿主路径>:<容器路径> -e <变量名>=<值> <镜像名>

参数 场景 例子 解释
-d 后台运行 (必加) 不加这个,你关闭终端窗口,服务就挂了。
--name 起名字 --name my-web 不然 Docker 会随机起个怪名字,管理起来很麻烦。
-p 开门(端口) -p 8080:80 左边是你电脑的端口。意思是访问你电脑的 8080,就是访问容器的 80。
-v 存数据 -v /data:/app 左边是你电脑的文件夹。把数据存在你电脑上,防止容器删除后数据丢失。
-e 改配置 -e PASSWORD=123 不想改代码配置?用这个环境变量参数直接覆盖配置(如数据库密码)。

4. 遇到 Bug 怎么修?(排错三板斧)

当容器启动失败或者运行不正常时,用这三招:

第一招:看日志 (Logs)

  • 命令:docker logs -f <容器名>

  • 作用:就像看程序的控制台输出。

  • 技巧:-f 代表实时刷新,按 Ctrl+C 退出。

第二招:钻进容器里 (Exec)

  • 命令:docker exec -it <容器名> bash

  • 作用:这就像远程桌面连进了这个容器内部。你可以在里面输入 ls, cat 查看文件是否都在。

  • 技巧:如果 bash 报错,尝试换成 sh

第三招:拿出来修 (Cp)

  • 命令:docker cp <容器名>:<容器路径> <本地路径>

  • 作用:把容器里的配置文件拷贝到电脑桌面上,改好了再拷回去。

  • 反向操作:docker cp <本地文件> <容器名>:<容器路径>


5. 进阶技能:定制你的镜像 (Dockerfile)

如果别人的镜像不满足需求,我们就自己造一个。在项目根目录新建文件 Dockerfile

  # 1. 选底座:找一个装好 Python 的系统
  FROM python:3.9-slim
  ​
  # 2. 定目录:在容器里创建工作文件夹
  WORKDIR /app
  ​
  # 3. 搬运工:把当前代码拷贝进去
  COPY . .
  ​
  # 4. 启动令:容器启动时自动执行的命令
  CMD ["python", "app.py"]

构建命令docker build -t my-app:v1 .(注意最后有个点 .,代表使用当前目录的 Dockerfile)


6. 懒人神器:Docker Compose

如果你觉得 docker run 命令太长记不住,请一定要用 Docker Compose。它用一个 docker-compose.yml 文件代替敲命令。

常用命令

  1. 一键启动docker compose up -d

  2. 一键销毁docker compose down

  3. 查看日志docker compose logs -f

7. 维护与清理 (给电脑瘦身)

Docker 用久了,磁盘红了怎么办?

  • 体检docker system df (看看到底是谁占了空间)

  • 安全清理docker container prune (只删已停止的容器)(docker image prunedocker rmi这两个命令是删除镜像)

  • 暴力清理docker system prune -a

    • 警告:这会删除所有未运行的容器和所有未被使用的镜像,请慎用!


💡 新手避坑“三不要”

  1. 数据不要留在容器里:重要数据(如数据库文件、用户上传图片)一定要用 -v 挂载到宿主机。

  2. 不要在容器里改代码:容器一重启,你的修改可能就没了。正确做法是改本机代码,然后重启容器。

  3. 不要只 Stop 不 Rmdocker stop 只是关机,容器还在占位置。如果确定不用了,记得 docker rm 清理掉。

更多推荐