01_introduction/1.1_quickstart.md
版本说明:本节示例基于 Docker v29.x 编写。示例中使用的
nginx:alpine镜像标签为演示用途,请查阅 Docker Hub - nginx 确认最新可用版本。
本节将通过一个简单的 Web 应用例子,带你快速体验 Docker 的核心流程:构建镜像、运行容器。
在学习 Docker 之前,我们先来理解为什么这个例子是最适合初学者的。Docker 的核心价值在于一致性交付——无论你在本地、云端还是他人的机器上运行容器,应用的行为都是完全一致的。这个 Nginx + 静态 HTML 的例子之所以被广泛采用,是因为它展现了 Docker 工作流的三个核心阶段:
docker build,Docker 根据 Dockerfile 逐层构建镜像docker run 启动容器实例,应用真正开始提供服务Nginx 是一个轻量级、使用广泛的 Web 服务器,学习完这个例子后,你可以轻松扩展到部署 Node.js、Python、Go 等任何语言的应用。
创建一个名为 hello-docker 的文件夹,并在其中创建一个 index.html 文件:
<h1>Hello, Docker!</h1>
在同级目录下创建一个名为 Dockerfile (无后缀) 的文件:
FROM nginx:alpine
COPY index.html /usr/share/nginx/html/index.html
打开终端,进入该目录,执行构建命令:
$ docker build -t my-hello-world .
docker build:构建命令-t my-hello-world:给镜像起个名字 (标签).:指定上下文路径为当前目录使用刚才构建的镜像启动一个容器:
$ docker run -d -p 8080:80 my-hello-world
docker run:运行命令-d:后台运行-p 8080:80:将宿主机的 8080 端口映射到容器的 80 端口打开浏览器访问 http://localhost:8080,你应该能看到 “Hello, Docker!”。
停止并删除容器:
# 查看正在运行的容器 ID
$ docker ps
# 停止容器
$ docker stop <CONTAINER_ID>
# 删除容器
$ docker rm <CONTAINER_ID>
恭喜!你已经完成了第一次 Docker 实战。接下来请阅读 Docker 核心概念做深入了解。