太棒了!既然你已经准备好了,我们就来运行 Docker 世界的“开门仪式”。
就像学编程都要打印 Hello World 一样,Docker 也有一个专门用来测试的镜像,名字就叫 hello-world。
2.1 Hello World
请在你的终端 (Terminal/CMD/PowerShell) 中输入下面这行神圣的命令,然后按回车:
docker run hello-world
你会看到什么?
如果一切顺利,屏幕上会刷出一堆英文,其中最核心的是这一句:
Hello from Docker!
This message shows that your installation appears to be working correctly.
🎉 恭喜!你刚刚成功运行了你的第一个 Docker 容器!
刚刚发生了什么?(底层解析)
虽然只敲了一行命令,但 Docker 在后台默默帮你做了 4 件事(请对照之前学的“三剑客”概念):
- 结果: 第一次运行,肯定没有 (Unable to find image… locally)。
- 屏幕提示: Pulling from library/hello-world…
验证一下
你可以输入下面这个命令,查看刚才下载的镜像是否还在电脑里:
docker images
你应该能看到 hello-world 在列表中,大小只有十几 KB。
这个时候你可能会问:“这个容器运行完就退出了,那如果我想运行一个一直在后台跑的服务(比如网站)该怎么办?”
好的,进入 2.2!这一节非常实用。
刚才的 hello-world 跑完就“死”了(退出),但实际工作中,我们的 Web 服务(比如网站、数据库)是需要一直运行的。
为了演示,我们换一个更厉害的镜像:Nginx(一个著名的 Web 服务器)。
请打开终端,准备好跟我一起敲命令!
2.2 容器的生命周期管理
我们要学习如何让容器:后台运行、查看状态、停止、启动、删除。
1. 启动一个“长生不老”的容器
输入以下命令:
docker run -d –name my-nginx nginx
命令解析(重点):
- docker run:创建并启动容器。
- -d (Detached):后台运行模式。这意味着容器启动后会默默在后台工作,不会占用你的终端窗口(不像 hello-world 那样占屏)。
- –name my-nginx:给这个容器起个名字叫 my-nginx。如果不写,Docker 会随机给它起个怪名字(比如 angry_einstein),很不方便管理。
- nginx:镜像的名字。
注:第一次运行 Docker 会先从仓库下载 Nginx 镜像,稍等片刻。
2. 查看正在运行的容器 (ps)
怎么知道它是不是真的在跑?输入:
docker ps
你会看到类似这样的列表:
- CONTAINER ID:容器的身份证号(随机乱码)。
- IMAGE:用的哪个镜像 (nginx)。
- STATUS:状态。如果看到 Up x seconds,说明它正在健康运行!
- NAMES:你刚才起的 my-nginx。
3. 停止容器 (stop)
玩够了,想让它休息一下。输入:
docker stop my-nginx
这时候你再输 docker ps,你会发现列表是空的。
不用慌,容器没丢,只是关机了。
4. 查看所有容器(包括关机的)
输入:
docker ps -a
(注意多了个 -a,意思是 all)
你会看到 my-nginx 还在,但是状态变成了 Exited(已退出)。
5. 再次启动 (start) & 重启 (restart)
- 开机:docker start my-nginx
- 重启(比如修改了配置想刷新):docker restart my-nginx
6. 删除容器 (rm)
如果不想要这个容器了,想把它扔进垃圾桶。
尝试直接删除:
docker rm my-nginx
报错了吗? 应该会提示:You cannot remove a running container…
规则:Docker 为了保护你,不能直接删除正在运行的容器。
正确的删除姿势:
小结
这一节你掌握了 Docker 的“遥控器”:
- docker run -d:后台启动
- docker ps:看正在跑的
- docker ps -a:看所有的(包括挂掉的)
- docker stop/start:关机/开机
- docker rm:删除容器(尸体)
实操任务:
请完整走一遍上面的流程:启动 -> 查看 -> 停止 -> 删除。
当你的 docker ps -a 列表里干干净净,没有 my-nginx 的时候,我们来看看怎么看容器里面发生了什么(比如查看报错日志)。
很好,进入 2.3!
这一节非常关键。很多初学者最大的困惑就是:“容器在后台跑,我怎么知道它有没有报错?我怎么进去修改文件?”
为了演示,我们需要先把刚才删掉的 my-nginx 重新复活。请先运行:
docker run -d –name my-nginx nginx
2.3 与容器交互
1. 查看日志 (Logs) —— 它是监控摄像头
当容器在后台 (-d) 运行时,你看不见它的输出。如果程序崩了,或者你想看谁访问了你的网站,就要查日志。
命令:
docker logs my-nginx
你会看到屏幕上打印出了一些信息(如果你还没访问过它,可能信息很少)。
高级用法:实时监控 (-f)
就像 Linux 的 tail -f 一样,你可以实时盯着日志看:
docker logs -f my-nginx
(此时光标会停在那里闪烁,如果有新日志会立刻跳出来。按 Ctrl + C 可以退出监控模式。)
2. 进入容器内部 (Exec) —— 它是任意门
这是 Docker 最酷的功能之一。虽然容器是一个封闭的盒子,但你可以随时“穿梭”进去。
命令(背下来):
docker exec -it my-nginx bash
命令解析:
- exec:执行命令。
- -it:这是两个参数 -i (交互式) 和 -t (伪终端) 的缩写。简单说,加上它,你才能像用 SSH 登录服务器一样在里面敲命令。
- bash:这是你想在容器里运行的程序。这里我们运行 bash (或者 sh),也就是启动一个命令行终端。
当你回车后:
你会发现命令行的提示符变了!变成了类似 root@8a2b3c4d5e6f:/# 的样子。
恭喜,你现在已经身处容器内部了! 😲
在里面随便逛逛:
你可以输入 Linux 命令看看:
- ls:看看文件目录。
- cat /etc/nginx/nginx.conf:看看 Nginx 的配置文件。
- ps:看看里面的进程(你会发现里面非常干净,可能只有 Nginx 在跑)。
怎么出来?
输入:
exit
你就回到了你原本的电脑终端。
⚠️ 一个常见的坑
有些为了极致精简的镜像(比如 alpine 版本),里面可能没有 bash。
如果你输入上面命令报错 executable file not found,请尝试把 bash 换成 sh:
docker exec -it my-nginx sh
第二阶段总结 (玩转容器)
你现在已经学会了:
这已经覆盖了 Docker 日常使用 80% 的场景了!
接下来我们要进入更有挑战性但也更有趣的阶段——我们不再用别人写好的镜像,我们要自己写代码,并把它打包成镜像!
准备好了吗?我们开始学习 Dockerfile。
网硕互联帮助中心

![[前端][cicd]使用github-action工具部署docker容器(实现一键推送部署到服务器)-网硕互联帮助中心](https://www.wsisp.com/helps/wp-content/uploads/2026/01/20260114020506-6966f9d2236ce-220x115.png)





评论前必须登录!
注册