docker 安装nginx

开始安装nginx。

1、直接拉取最新的nginx镜像

docker pull nginx

2、新建一些目录,把nginx容器内的相关文件夹挂载到宿主机上,主要方便改写配置,其次是删除容器,这些文件不会丢失

mkdir -p /root/nginx/{conf,html,logs,ssl}

3、启动一个nginx容器,用来cp一些文件,放到步骤2新建的文件夹里面

docker run --name nginx -p 80:80 -d nginx

 docker cp  0a5b63830be2:/etc/nginx/nginx.conf /root/nginx/conf/
 docker cp  0a5b63830be2:/etc/nginx/conf.d /root/nginx/
 docker cp  0a5b63830be2:/usr/share/nginx/html/index.html /root/nginx/html/

4、停止当前nginx容器,并删除

docker rm -f 0a5b63830be2

5、生成证书并放到宿主机ssl目录下面

6、修改配置文件

server {
    listen       80;
    listen  [::]:80;
    server_name  www.telami.cn;

    rewrite ^(.*) https://$server_name$1 permanent;

}

server {
    listen       443 ssl;
    server_name  www.xxx.cncom

    ssl_certificate      /etc/nginx/ssl/xxx.com.pem;
    ssl_certificate_key  /etc/nginx/ssl/xxx.com.key;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    location / {
        proxy_set_header   X-Real-IP         $remote_addr;
        proxy_set_header   Host              $http_host;
        proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

7、启动新的nginx容器

docker run \
--name nginx \
-p 443:443 -p 80:80 \
-v /root/nginx/logs:/var/log/nginx \
-v /root/nginx/html:/usr/share/nginx/html \
-v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /root/nginx/conf.d:/etc/nginx/conf.d \
-v /root/nginx/ssl:/etc/nginx/ssl/  \
--privileged=true -d --restart=always nginx

简单解释一下:

  • -v:挂载宿主机的目录,冒号":"前面的目录是宿主机目录,后面的目录是容器内目录;
  • -d:后台运行;
  • --restart=always:重启docker时,自动重启改容器;

说到这里,有一个点需要注意一下,就是上面的defaul.conf文件中,出现的绝对路径都是容器内的路径,而不是宿主机的。

0 0 投票数
Article Rating
订阅评论
提醒
guest
1 评论
最旧
最新 最多投票
内联反馈
查看所有评论
匿名feng
匿名feng
12 天 前

配置起来有些不方便

1
0
希望看到您的想法,请您发表评论x