拉取docker nginx 容器就跳过了;
首先进行安装,,安装的时候使用
启动:
docker run --name nginx-dev -p <span class="token number">80</span>:80 -d nginxdocker run --name nginx-dev -p <span class="token number">80</span>:80 -d nginxdocker run --name nginx-dev -p 80:80 -d nginx
其中
--name
后跟你给容器取的名字,任意即可
-p
后面跟端口映射规则,比如
18080:80
表示把外部宿主机的18080映射到容器的80即可,容器内部使用80访问nginx,宿主机使用18080访问容器,
-d
表示后台运行;
配置:
首先需要进入容器
docker <span class="token builtin class-name">exec</span> -it nginx-dev bin/bashdocker <span class="token builtin class-name">exec</span> -it nginx-dev bin/bashdocker exec -it nginx-dev bin/bash
切换到配置文件夹
cd etc<span class="token operator">/</span>nginx<span class="token operator">/</span>conf<span class="token punctuation">.</span>dcd etc<span class="token operator">/</span>nginx<span class="token operator">/</span>conf<span class="token punctuation">.</span>dcd etc/nginx/conf.d
安装vim
<span class="token function">apt-get</span> update<span class="token function">apt-get</span> updateapt-get update
<span class="token function">apt-get</span> <span class="token function">install</span> <span class="token function">vim</span><span class="token function">apt-get</span> <span class="token function">install</span> <span class="token function">vim</span>apt-get install vim
然后就可以对default.conf配置文件进行编辑了,编辑结束以后重启容器;
遇到的坑:
明明配置好了,但是却始终无法实现反向代理;
原因是,把常规配置nginx和docker的配置方法弄混淆了,docker相当于一个独立的系统,所以我使用回环地址的时候,并不会像我在外面使用nginx一样访问到对应的服务,而是在容器内部的回环地址,所以访问不到;
这里需要给出宿主机的具体host和port;
*错误代码如下 *
server <span class="token punctuation">{<!-- --></span> listen <span class="token number">80</span><span class="token punctuation">;</span> server_name localhost<span class="token punctuation">;</span> error_page <span class="token number">500</span> <span class="token number">502</span> <span class="token number">503</span> <span class="token number">504</span> /50x.html<span class="token punctuation">;</span> location <span class="token operator">=</span> /50x.html <span class="token punctuation">{<!-- --></span> root html<span class="token punctuation">;</span> <span class="token punctuation">}</span> location /user/ <span class="token punctuation">{<!-- --></span> client_max_body_size 300m<span class="token punctuation">;</span> proxy_connect_timeout 300s<span class="token punctuation">;</span> proxy_send_timeout 300s<span class="token punctuation">;</span> proxy_read_timeout 300s<span class="token punctuation">;</span> proxy_pass http://127.0.0.1:18081<span class="token punctuation">;</span> <span class="token punctuation">}</span>server <span class="token punctuation">{<!-- --></span> listen <span class="token number">80</span><span class="token punctuation">;</span> server_name localhost<span class="token punctuation">;</span> error_page <span class="token number">500</span> <span class="token number">502</span> <span class="token number">503</span> <span class="token number">504</span> /50x.html<span class="token punctuation">;</span> location <span class="token operator">=</span> /50x.html <span class="token punctuation">{<!-- --></span> root html<span class="token punctuation">;</span> <span class="token punctuation">}</span> location /user/ <span class="token punctuation">{<!-- --></span> client_max_body_size 300m<span class="token punctuation">;</span> proxy_connect_timeout 300s<span class="token punctuation">;</span> proxy_send_timeout 300s<span class="token punctuation">;</span> proxy_read_timeout 300s<span class="token punctuation">;</span> proxy_pass http://127.0.0.1:18081<span class="token punctuation">;</span> <span class="token punctuation">}</span>server { listen 80; server_name localhost; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location /user/ { client_max_body_size 300m; proxy_connect_timeout 300s; proxy_send_timeout 300s; proxy_read_timeout 300s; proxy_pass http://127.0.0.1:18081; }
正确的写法:
server <span class="token punctuation">{<!-- --></span> listen <span class="token number">80</span><span class="token punctuation">;</span> server_name localhost<span class="token punctuation">;</span> error_page <span class="token number">500</span> <span class="token number">502</span> <span class="token number">503</span> <span class="token number">504</span> /50x.html<span class="token punctuation">;</span> location <span class="token operator">=</span> /50x.html <span class="token punctuation">{<!-- --></span> root html<span class="token punctuation">;</span> <span class="token punctuation">}</span> location /user/ <span class="token punctuation">{<!-- --></span> client_max_body_size 300m<span class="token punctuation">;</span> proxy_connect_timeout 300s<span class="token punctuation">;</span> proxy_send_timeout 300s<span class="token punctuation">;</span> proxy_read_timeout 300s<span class="token punctuation">;</span> proxy_pass http://47.121.23.142:18081<span class="token punctuation">;</span> <span class="token punctuation">}</span>server <span class="token punctuation">{<!-- --></span> listen <span class="token number">80</span><span class="token punctuation">;</span> server_name localhost<span class="token punctuation">;</span> error_page <span class="token number">500</span> <span class="token number">502</span> <span class="token number">503</span> <span class="token number">504</span> /50x.html<span class="token punctuation">;</span> location <span class="token operator">=</span> /50x.html <span class="token punctuation">{<!-- --></span> root html<span class="token punctuation">;</span> <span class="token punctuation">}</span> location /user/ <span class="token punctuation">{<!-- --></span> client_max_body_size 300m<span class="token punctuation">;</span> proxy_connect_timeout 300s<span class="token punctuation">;</span> proxy_send_timeout 300s<span class="token punctuation">;</span> proxy_read_timeout 300s<span class="token punctuation">;</span> proxy_pass http://47.121.23.142:18081<span class="token punctuation">;</span> <span class="token punctuation">}</span>server { listen 80; server_name localhost; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location /user/ { client_max_body_size 300m; proxy_connect_timeout 300s; proxy_send_timeout 300s; proxy_read_timeout 300s; proxy_pass http://47.121.23.142:18081; }
这样请求——>宿主机p80端口——>被映射到docker容器的80端口——>容器80对应nginx服务器——>nginx监听80对请求进行转发——>转发到宿主机对应的地址和端口——>servlet
有理解错误的地方欢迎大佬指正;
挂载式的配置文件后续更新;太晚了睡觉;。。。。
docker run <span class="token operator">-</span>id <span class="token operator">--</span>name nginx<span class="token operator">-</span>dev <span class="token operator">-</span>p <span class="token number">80</span><span class="token punctuation">:</span><span class="token number">80</span> <span class="token operator">-</span>p <span class="token number">443</span><span class="token punctuation">:</span><span class="token number">443</span> <span class="token operator">-</span>v <span class="token operator">/</span>data<span class="token operator">/</span>docker<span class="token operator">-</span>config<span class="token operator">/</span>nginx<span class="token punctuation">:</span><span class="token operator">/</span>etc<span class="token operator">/</span>nginx<span class="token operator">/</span>conf<span class="token punctuation">.</span>d nginxdocker run <span class="token operator">-</span>id <span class="token operator">--</span>name nginx<span class="token operator">-</span>dev <span class="token operator">-</span>p <span class="token number">80</span><span class="token punctuation">:</span><span class="token number">80</span> <span class="token operator">-</span>p <span class="token number">443</span><span class="token punctuation">:</span><span class="token number">443</span> <span class="token operator">-</span>v <span class="token operator">/</span>data<span class="token operator">/</span>docker<span class="token operator">-</span>config<span class="token operator">/</span>nginx<span class="token punctuation">:</span><span class="token operator">/</span>etc<span class="token operator">/</span>nginx<span class="token operator">/</span>conf<span class="token punctuation">.</span>d nginxdocker run -id --name nginx-dev -p 80:80 -p 443:443 -v /data/docker-config/nginx:/etc/nginx/conf.d nginx
启动并挂载目录
原文链接:https://blog.csdn.net/m0_49194578/article/details/117341481
© 版权声明
声明📢本站内容均来自互联网,归原创作者所有,如有侵权必删除。
本站文章皆由CC-4.0协议发布,如无来源则为原创,转载请注明出处。
THE END