十二、Docker部署nginx并挂载本地目录到镜像

拉取nginx

docker pull nginx:1.18

准备工作

问题:拉取nginx并运行为容器后,如果想要修改,那么就需要进入容器,这样很麻烦。

解决:因此,要将配置文件挂载出来。使用docker run -v 宿主机目录:容器目录进行挂载。

失败案例:docker run -d --name web01 -p 10000:80 -v /usr/local/docker/nginx:/etc/nginx nginx:1.18 /bin/bash此挂载是想将nginx容器的配置目录与宿主机同步,但是 这样去挂是没法成功的。

解决:先运行一个测试的nginx容器,并将里面的nginx配置文件内容复制出来,然后在进行挂载。

目录安排:我将所有Docker容器的东西放在/usr/local/docker目录下,虽然挂载时会自动创建目录,但是,必须手动将其创建出来,并先写好对应的配置文件的内容。

nginx.conf配置文件

该配置文件在/usr/local/docker/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;}

default.conf

该默认配置文件在/usr/local/docker/nginx/conf.d目录下

server {      listen       80;      server_name  localhost;  

    #charset koi8-r;      #access_log  /var/log/nginx/log/host.access.log  main;  

    location / {          #root   /data/nginx/html;          root   /usr/share/nginx/html;          index  index.html index.htm;          #autoindex  on;          #try_files $uri /index/index/page.html;          #try_files $uri /index/map/page.html;      }  

    #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;      #}  }

挂载日志文件

/usr/local/docker/nginx/logs:/var/log/nginx这样将nginx的日志文件挂载出来是可以的!

但是/usr/local/docker/nginx:/etc/nginx直接挂载配置目录是不行的,对此我没有明白,如果你明白,我想向你请教!

挂载项目目录

/www:/usr/share/nginx/html这样挂载项目目录同样是可行的,但是同样的问题,挂载配置目录,所有内容都会消失。但是先将内容写出来,然后再配置却可以 ,对此我不明白。

启动容器

使用下面的命令进行容器启动

docker run -d -p 10000:80 --name web01 -v /usr/local/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/docker/nginx/conf.d://etc/nginx/conf.d  -v /www://usr/share/nginx/html -v /usr/local/docker/nginx/logs:/var/log/nginx nginx:1.18

通过实际测试可以,生效的配置文件是default.conf

注意:下面这个2个启动是我进行目录挂载测试的。

# 可以挂载成功,容器中的文件会同步到宿主机docker run -d --name web02 -p 10000:80 -v /usr/local/docker/nginx/logs:/var/log/nginx nginx:1.18 

docker run -d --name web03 -p 10000:80 -v /www:/usr/share/nginx/html nginx:1.18

我是小白,期待和优秀的你一起同行!

  小白

  2020年12月13日

转载:感谢您对自如初博客网站的认可,所有文章均属原创文章,技术类文章转载请注明出处,“自如初博客”;文学类文章请带文本链接地址,否则视为侵权!

(0)

相关推荐

  • docker学习8-搭建nginx环境

    前言 使用 docker 搭建 nginx 环境 下载镜像 使用docker pull 拉取最新的 nginx 镜像 [root@yoyo ~]# docker pull nginx Using de ...

  • docker 运行容器,安装Nginx

    ###########################################运行容器#安装Nginx#搜索.下载镜像docker search nginxdocker pull nginxd ...

  • Nginx

    Nginx基本简述 Nginx软件介绍 Nginx是一个开源且高性能.可靠的HttpWeb服务.代理服务. 开源: 直接获取源代码 高性能: 支持海量并发 可靠: 服务稳定 如果你听说或使用过 Apa ...

  • Docker部署Nginx并修改配置文件

    一.拉取nginx镜像 docker pull nginx 二.在宿主机中创建挂载目录 mkdir -p /data/nginx/{conf,conf.d,html,log} 三.将配置文件放到挂载目 ...

  • 【胶东散文年选·新书出版】《胶东散文十二家(第六辑)》目录

    [胶东散文年选·新媒体散文年度征文] 焦红军,作家,评论家兼出版人.中国作家协会会员.中国文艺评论家协会会员,黄海数字出版社特约编审,山东省散文学会副会长,<当代散文>副主编.<胶东 ...

  • 行走印度三十天(十二):本地治里 by 夜静思

    11月30日到达本地治里,入住在老城区的海边,LP上推荐的一个法国老人开的酒店,酒店建筑的许多细节上彰显了法国人的浪漫气息.从来没住过离海边这么近的地方,站在阳台上,透过一排整齐的椰子树,不远处孟加拉 ...

  • Docker部署tomcat nginx mysql,创建一个tomcat集群

    Docker的部署可以选择虚拟机或者云服务器,我自己选择的是本机安装centos7虚拟机: 1.虚拟机安装登录成功后开始部署docker: 首先了解docker是一个开源应用容器引擎,基于Go语言遵循 ...

  • 读懂十二时辰,就懂了我们的一生

    十二时辰是古人根据一日间太阳出没的自然规律.天色的变化以及自己日常的生产活动.生活习惯而归纳总结.独创于世的.十二时辰制,西周时就已使用.古人把一昼夜划分成十二个时段,每一个时段叫一个时辰.十二时辰既 ...

  • 十二宫对应十二月,十二时辰和人体十二经脉...

    十二宫对应十二月,十二时辰和人体十二经脉.依次为:命宫,兄弟,夫妻,子女,财帛,疾厄,迁移,交友,事业,田宅,福德,父母.宫原意为房屋,住宅,是一个空间概念.

  • 十二个秘方,据说价值好几百万。

     首先说明一下,这二十个方子确实是别人送我的,也说价值好几万,不过我确实没用过,不过看病症和药物配伍应该有用,至于有没有那么神奇因为没试过我也不知道,看到的可以参考一下,谨慎使用! 一.丰胸特效药方( ...

  • 正月十二!米脂两班秧歌队上街表演打擂台,热闹日塌了!

    2018正月十二财政局~水务局两支秧歌队上街表演 2018正月十二财政局~水务局两支秧歌队上街表演 展开

  • (1)天干十二长生与五行十二长生

    十干十二长生如下表: 十干十二长生一般作为一种工具表使用,但若将其全部记住并全部推演出来,也是有规律可循的.首先是阳顺阴逆,凡属阳性天干,其所在宫位之地支排列皆按顺序排列:阴性天干所在宫位之地支皆按逆 ...