docker安装nginx并配置映射
1. 下载镜像,并复制默认配置
docker run --name mynginx -d nginx
# 创建主机挂载配置文件
mkdir -p ~/i/apps/nginx/{conf,conf.d,html,logs}
# 复制默认配置
docker cp mynginx:/etc/nginx/nginx.conf ~/i/apps/nginx/conf/nginx.conf
docker cp mynginx:/etc/nginx/conf.d/default.conf ~/i/apps/nginx/conf.d/default.conf
docker cp mynginx:/usr/share/nginx/html/index.html ~/i/apps/nginx/html/index.html
要想查询默认配置可以:
docker run -i -t nginx /bin/bash
:查看所有文件夹cat /etc/nginx/nginx.conf
:查看nginx.conf文件内容然后拷贝出来cat /etc/nginx/conf.d/default.conf
:查看default.conf文件内容然后拷贝出来/usr/share/nginx/html
:默认首页文件夹html路径/var/log/nginx
:日志文件路径
2. 停止删除容器
docker rm -f mynginx
3. 生成启动文件 - start.sh
[root@master ~]# cd ~/i/apps/nginx/
[root@master nginx]# ls
conf conf.d html logs
[root@master nginx]# cat <<EOF > start.sh
#!/bin/bash
NGINX_DIR=`pwd`
docker stop mynginx
docker rm mynginx
docker run -d \\
--restart always \\
-p 80:80 \\
--name mynginx \\
-v \${NGINX_DIR}/html:/usr/share/nginx/html \\
-v \${NGINX_DIR}/conf/nginx.conf:/etc/nginx/nginx.conf \\
-v \${NGINX_DIR}/conf.d:/etc/nginx/conf.d \\
-v \${NGINX_DIR}/logs:/var/log/nginx \\
nginx
EOF
说明:
-d
: 后台运行容器;
--name
: 指定容器名;
-p
: 指定服务运行的端口;
-v
: 映射目录或文件;
4. 运行start.sh 启动mynginx
[root@master nginx]# sh start.sh
Error response from daemon: No such container: mynginx
Error: No such container: mynginx
5a23fe9288535c0141afb5b55c7c907e8c0a108dcda8fe486fb02028975ad5bb
5. 访问http://192.168.3.27/
可以访问到nginx默认页面
6. 配置反向代理
[root@master nginx]# cd conf.d/
[root@master conf.d]# ls
default.conf
[root@master conf.d]# vi www.wanfei.com.conf
# 复制
server {
listen 80;
server_name www.wanfei.com;
access_log /var/log/nginx/wanfei.access.log main;
error_log /var/log/nginx/wanfei.error.log error;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:80;
}
}