1.说说挂载
- 挂载含义:启动时覆盖,运行时新增共享
- 挂载作用:docker 一般是非持久化存储,重启关闭可能导致数据丢失
- 挂载内容:
- 日志(启动失败时可以查看)
- 配置文件(先写好)
- 运行数据
2.Docker 挂载 Nginx 两点注意
两点注意:
1)我们不是直接挂载 nginx.conf 而是 conf.d 目录下的 server 配置
注:先使用原文件,启动后再修改,易报错
相应的配置文件如下(只包含 server 部分)
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
2)里面的 proxy_pass 配置转发 IP
- 访问主机:主机 IP:8080(比如代理一个 java 程序 43.105.39.120:8080)
- 访问其他容器:容器 IP(比如代理 redis 172.17.0.3)
3.Docker 挂载 Nginx 命令示例
命令示例:
docker run -d --name mynginx -p 80:80
-v /data/logs:/var/nginx/log // 日志目录
-v /data/conf:/etc/nginx/conf.d // 配置目录(挂的是 conf.d 目录)
-v /data/data:/data // 数据目录
nginx