Docker挂载配置文件方式运行Nginx
本文以centos7系统为例,演示Docker挂载配置文件的方式运行Nginx
如何在linux系统上安装Docker,详见 https://blog.csdn.net/qq_35148205/article/details/144915388
首先安装nginx
docker pull nginx # 下载最新版本
或
docker pull nginx:1.24.0 #跟上版本号,下载指定版本
运行镜像,生成容器 (以最新版的nginx镜像为例)
docker run -d --name mynginx -p 80:80 nginx
在宿主机上创建文件目录(宿主机就理解为我们的linux操作系统)
在指定路径下创建conf, html, log文件夹
将容器中的nginx.conf文件夹中的内容复制到宿主机
docker cp mynginx:/etc/nginx/nginx.conf /你的文件目录/conf/
例:
docker cp mynginx:/etc/nginx/nginx.conf /usr/local/docker_config/conf/
将容器中的html文件夹中的内容复制到宿主机
docker cp mynginx:/usr/share/nginx/html /你的文件目录/
例:
docker cp mynginx:/usr/share/nginx/html /usr/local/docker_config/
修改nginx.conf内容:
根据自己的项目需求,修改nginx.conf内容。参考配置文件信息:
# user nginx;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location /prod-api/ {
proxy_read_timeout 200s;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://宿主机ip:端口/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
删除刚才运行的nginx容器
docker ps -a # 列出所有的容器
docker rm -f xxxId # 根据指定的CONTAINER ID 删除指定的容器
最后,通过挂载自定义配置文件的方式,运行Nginx
docker run \
-p 80:80 \
--name mynginx \
-v /你的文件目录/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /你的文件目录/log:/var/log/nginx \
-v /你的文件目录/html:/usr/share/nginx/html \
-d nginx
例
docker run \
-p 80:80 \
--name mynginx \
-v /usr/local/docker_nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/docker_nginx/log:/var/log/nginx \
-v /usr/local/docker_nginx/html:/usr/share/nginx/html \
-d nginx