之间一文中也详细叙述了搭建nginx容器的挂载目录方面的步骤,注意我们的目的是将nginx容器作为一个及拉及用软件,而不是将其作为一个VM,在其中大刀阔斧的修改配置。
建议看看前面一文《Nginx 容器挂载,发布vue项目》,手动搭建Nginx容器。
目录结构
一、配置相关挂载目录及其文件
1、 创建需要挂载的相应的挂载目录
mkdir -p /root/nginxdocker/conf
mkdir -p /root/nginxdocker/html
mkdir -p /root/nginxdocker/conf.d
mkdir -p /root/nginxdocker/logs
将build的vue项目dist下的文件拷贝到 /root/nginxdocker/html 中即可,这是等下需要访问的页面,也可以随手写一个html文件
2、创建conf/nginx.conf文件
(这里我用的是官方默认的配置文件,可以替换成自己的配置文件)
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
3、 创建conf.d/default.conf文件
server {
listen 80;
listen [::]:80;
server_name localhost;
location /hohai {
root /usr/share/nginx/html;
index index.html;
}
}
4、挂载的文件路径
获取docker 镜像中nginx的文件路径(这里是我提前找好的,可以直接套用。如果想要自己尝试去寻找,可以先将镜像启动后,通过docker exec -it nginx bash命令进入到容器内部自己寻找)
日志文件是发生错误的保命文件
html文件路径: /etc/nginx/html
配置文件路径:/etc/nginx/nginx.conf
/etc/nginx/conf.d/default.conf
日志存放路径:/var/log/nginx
二、编写容器编排文件
docker-compose.yml,注意格式缩进
version: '3.3'
services:
nginx:
restart: always
container_name: nginx
image: nginx:alpine
ports:
- 8080:80
- 80:80
- 443:443
volumes:
- /root/nginxdocker/conf/nginx.conf:/etc/nginx/nginx.conf
- /root/nginxdocker/html:/usr/share/nginx/html
- /root/nginxdocker/logs:/var/log/nginx
- /root/nginxdocker/conf.d/default.conf:/etc/nginx/conf.d/default.conf
三、运行及查看
[root@iZ2ze5ot8cnsficuqqnoj5Z /root/nginxdocker/]# docker-compose up -d
查看镜像,我只能说小的一批!
[root@iZ2ze5ot8cnsficuqqnoj5Z conf.d]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx alpine a6eb2a334a9f 13 days ago 22.6MB
[root@iZ2ze5ot8cnsficuqqnoj5Z conf.d]# docker-compose ps
Name Command State Ports
----------------------------------------------------------------------------------------------------------
nginx /docker-entrypoint.sh ngin ... Up 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp,0.0.0.0:8080->80/tcp
访问:http://47..82/hohai/
即可跳转到我们编写的html文件
外网访问