`docker run`、`docker start`、`docker exec` 区别
🧠 先给你一句话理解:
docker run
≈docker create
+docker start
+docker exec
(第一次)
✅ 三者的区别一览表
命令 | 作用 | 类比真实生活 | 常用场景 |
---|---|---|---|
docker run | 创建 + 启动 + 执行命令(一次性) | 你买了一台新电脑,打开它,并开始运行一个程序 | 第一次启动一个新容器 |
docker start | 启动已存在的容器(不运行命令) | 把之前关机的电脑重新开机(但程序没开) | 再次启动已存在的容器 |
docker exec | 向正在运行的容器中执行一个命令 | 你打开电脑后,打开一个 Word 程序 | 已启动容器后执行额外命令 |
✅ 举个完整的例子说明
1. 第一次运行容器(最常用的)
docker run -it --name myubuntu ubuntu bash
含义:
docker run
:第一次运行-it
:让你能进交互终端--name myubuntu
:给容器起个名字ubuntu
:使用哪个镜像bash
:进去后执行哪个命令(这里是 bash 终端)
🟢 这个命令干了 3 件事:
- 创建一个容器(相当于买电脑)
- 启动它(开机)
- 启动 bash(打开一个程序)
2. 容器关掉后,再次开启
docker start myubuntu
✅ 这只是开机,不会进入容器内部终端。
3. 想要再次“进入”容器终端或运行命令
docker exec -it myubuntu bash
✅ 这才是进入容器内部、手动执行某个命令,比如打开 bash。
✅ 总结口诀记忆
命令 | 口诀 |
---|---|
docker run | 第一次跑,创建+启动+执行 |
docker start | 开机(不登录) |
docker exec | 登录进去运行命令 |
💡 小贴士(实际开发中)
你想干什么 | 用哪个命令 |
---|---|
启动新容器(一次性跑完脚本) | docker run |
容器之前关了,现在想再次开机 | docker start |
容器在运行,想进去看看 | docker exec -it 容器名 bash |