Files
docker_practice/01_introduction/1.1_quickstart.md
T

76 lines
2.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 1.1 快速上手
本节将通过一个简单的 Web 应用例子带你快速体验 Docker 的核心流程构建镜像运行容器
### 为什么选择 Nginx + HTML 作为入门例子
在学习 Docker 之前我们先来理解为什么这个例子是最适合初学者的Docker 的核心价值在于**一致性交付**——无论你在本地云端还是他人的机器上运行容器应用的行为都是完全一致的这个 Nginx + 静态 HTML 的例子之所以被广泛采用是因为它展现了 Docker 工作流的三个核心阶段
1. **镜像定义Image Layer**通过 Dockerfile 描述如何把应用打包成一个自包含的单元
2. **镜像构建Build**执行 `docker build`Docker 根据 Dockerfile 逐层构建镜像
3. **容器运行Runtime**通过 `docker run` 启动容器实例应用真正开始提供服务
Nginx 是一个轻量级使用广泛的 Web 服务器学习完这个例子后你可以轻松扩展到部署 Node.jsPythonGo 等任何语言的应用
### 1.1.1 准备代码
创建一个名为 `hello-docker` 的文件夹并在其中创建一个 `index.html` 文件
```html
<h1>Hello, Docker!</h1>
```
### 1.1.2 编写 Dockerfile
在同级目录下创建一个名为 `Dockerfile` (无后缀) 的文件
```dockerfile
FROM nginx:alpine
COPY index.html /usr/share/nginx/html/index.html
```
### 1.1.3 构建镜像
打开终端进入该目录执行构建命令
```bash
$ docker build -t my-hello-world .
```
* `docker build`构建命令
* `-t my-hello-world`给镜像起个名字 (标签)
* `.`指定上下文路径为当前目录
### 1.1.4 运行容器
使用刚才构建的镜像启动一个容器
```bash
$ docker run -d -p 8080:80 my-hello-world
```
* `docker run`运行命令
* `-d`后台运行
* `-p 8080:80`将宿主机的 8080 端口映射到容器的 80 端口
### 1.1.5 访问测试
打开浏览器访问 [http://localhost:8080](http://localhost:8080),你应该能看到 “Hello, Docker!”。
### 1.1.6 清理
停止并删除容器
```bash
# 查看正在运行的容器 ID
$ docker ps
# 停止容器
$ docker stop <CONTAINER_ID>
# 删除容器
$ docker rm <CONTAINER_ID>
```
恭喜你已经完成了第一次 Docker 实战接下来请阅读 [Docker 核心概念](../02_basic_concept/README.md)做深入了解