系统信息:

Linux ecs-205380 4.15.0-169-generic #177-Ubuntu SMP Thu Feb 3 10:50:38 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

本文章将Nginx安装在/home/docker/nginx

什么是Nginx

Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。

Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。

Nginx的稳定性、功能集、示例配置文件和低系统资源的消耗让他后来居上,在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。

编写docker-compose.yml

进入/home/docker/nginx

1
lilbai@: sudo vim docker-compose.yml

docker-compose.yml文件内输入如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: '3.0'
services:
nginx: # 服务名称
image: nginx:latest # 镜像版本 默认最新
restart: always # 启动方式
container_name: nginx #容器名称
volumes: # 本机路径:容器路径
- /home/docker/nginx/conf/conf.d:/etc/nginx/conf.d
- /home/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
- /home/docker/nginx/html:/usr/share/nginx/html
- /home/docker/nginx/logs:/var/log/nginx
- /home/docker/nginx/ssl:/etc/ssl
ports: # 端口映射,本机端口:容器端口
- 80:80
- 443:443

内容分析

1
2
3
4
5
6
7
8
9
10
11
12
version: '3.1'				# 版本
services:
nginx: # web程序
restart: always
image: nginx # 镜像名,或者镜像下载地址也可以
container_name: nginx # 之后构建容器的名字
ports: # 端口映射
- 80:80 # 主机端口:容器端口
volumes:
- /home/docker/nginx/conf.d/:/etc/nginx/conf.d
- /home/docker/nginx/html/:/usr/share/nginx/html
- /home/docker/nginx/logs:/var/log/nginx

构建docker容器

1
lilbai@: docker-compose build

更新docker-compose

1
lilbai@: docker-compose up -d

查看容器是否存在

1
lilbai@: docker ps

存在后即前面步骤操作成功

查看映射文件夹是否存在

进入/home/docker/nginx/查看

1
2
3
lilbai@: cd /home/docker/nginx/
lilbai@: ls
conf.d docker-compose.yml html logs

conf.dhtmllogs映射的文件夹已经存在。

  • conf.d是server块配置文件夹
  • html是页面资源文件夹
  • logs是日志文件夹

编写server块

进入/home/docker/nginx/conf.d文件夹,编辑default.conf文件,如果没有default.conf文件,则新建即可。

1
lilbai@: sudo vi default.conf

将以下内容填入default.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
server{
listen 80;
server_name localhost;

location / {
root /usr/share/nginx/html;
index index.html index.htm;
}

location /test {
root /usr/share/nginx/html/test;
index index.html index.htm;
}
}

添加html访问资源

1
2
3
lilbai@: cd /home/docker/nginx/html
lilbai@: vi index.html
# 如果 vi index.html 不能保存的话,则使用 sudo vi index.html

随便在index.html写点东西即可

1
2
3
<h1>
11111
</h1>

重启Nginx

编辑完资源文件,重启docker-compose或者nginx都可以

1
2
3
lilbai@: docker-compose restart
# 或者
lilbai@: docker restart nginx