Docker 中 Nginx 部署流程

设置端口映射

1
2
3
4
5
6
7
8
run [-P] [-p]
-P,--publish-all(全部映射)
示例:docker run -P -i -t ubuntu /bin/bash
-p,--publish=[](指定映射)
示例:docker run -p 80 -i -t ubuntu /bin/bash
docker run -p 8080:80 -i -t ubuntu /bin/bash
docker run -p 0.0.0.0:80 -i -t ubuntu /bin/bash
docker run -p 0.0.0.0:8080:80 -i -t ubuntu /bin/bash

1. 创建映射 80 端口的交互式容器

1
docker run -p 80 --name web -i -t ubuntu /bin/bash

2. 安装 Nginx

1
2
apt-get update(更新源)
apt-get install -y nginx

3. 安装文本编辑器 vim

1
apt-get install -y vim

4. 创建静态页面

1
2
3
mkdir -p /var/www/html
cd /var/www/html/
vim index.html
1
2
3
4
5
6
7
8
<html>
<head>
<title>Nginx in docker<title>
<head>
<body>
<h1>hello Docker</h1>
<body>
<html>

5. 修改 Nginx 配置文件

1
2
3
whereis nginx
ls /etc/nginx/sites-enabled (一般都在这个位置,视具体而定)
vim /etc/nginx/sites-enabled/default
1
2
3
4
5
server{
...
root /var/www/html;
...
}

6. 运行 Nginx

1
2
3
cd /
nginx
ps -ef (查看nginx运行状态)

Ctrl+P Ctrl+Q (后台运行)

7. 验证网站访问

方法一:宿主机端口访问

1
2
3
4
5
6
7
8
9
10
11
root@wkaanig:~# docker port web
80/tcp -> 0.0.0.0:32768
root@wkaanig:~# curl http://127.0.0.1:32768
<html>
<head>
<title>Nginx in docker<title>
<head>
<body>
<h1>hello Docker</h1>
<body>
<html>

方法二:容器ip访问

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
root@wkaanig:~# docker inspect web 
查找到
"Networks": {
...
"IPAddress": "172.17.0.3",
...
}
root@wkaanig:~# curl http://172.17.0.3
<html>
<head>
<title>Nginx in docker<title>
<head>
<body>
<h1>hello Docker</h1>
<body>
<html>

8. 完善性测试

1
2
3
4
5
6
docker stop web 
docker start -i web
ps -ef (发现nginx并未开启)
docker exec web nginx
docker top web
curl IP地址 (注意:此时ip地址及映射地址已经改变,按以上方法重新查看ip)