安装docker并运行:
<span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> <span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span><span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> <span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span>[root@localhost ~] [root@localhost ~]
查看镜像库,没有nginx的可以用docker pull nginx
获取镜像。
<span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> REPOSITORY TAG IMAGE ID CREATED SIZE <span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> Using default tag: latest latest: Pulling from library/nginx e5ae68f74026: Pull complete 21e0df283cd6: Pull complete ed835de16acd: Pull complete 881ff011f1c9: Pull complete 77700c52c969: Pull complete 44be98c0fab6: Pull complete Digest: sha256:9522864dd661dcadfd9958f9e0de192a1fdda2c162a35668ab6ac42b465f0603 Status: Downloaded newer image <span class="token keyword">for</span> nginx:latest docker.io/library/nginx:latest <span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest f652ca386ed1 <span class="token number">2</span> weeks ago 141MB<span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> REPOSITORY TAG IMAGE ID CREATED SIZE <span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> Using default tag: latest latest: Pulling from library/nginx e5ae68f74026: Pull complete 21e0df283cd6: Pull complete ed835de16acd: Pull complete 881ff011f1c9: Pull complete 77700c52c969: Pull complete 44be98c0fab6: Pull complete Digest: sha256:9522864dd661dcadfd9958f9e0de192a1fdda2c162a35668ab6ac42b465f0603 Status: Downloaded newer image <span class="token keyword">for</span> nginx:latest docker.io/library/nginx:latest <span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest f652ca386ed1 <span class="token number">2</span> weeks ago 141MB[root@localhost ~] REPOSITORY TAG IMAGE ID CREATED SIZE [root@localhost ~] Using default tag: latest latest: Pulling from library/nginx e5ae68f74026: Pull complete 21e0df283cd6: Pull complete ed835de16acd: Pull complete 881ff011f1c9: Pull complete 77700c52c969: Pull complete 44be98c0fab6: Pull complete Digest: sha256:9522864dd661dcadfd9958f9e0de192a1fdda2c162a35668ab6ac42b465f0603 Status: Downloaded newer image for nginx:latest docker.io/library/nginx:latest [root@localhost ~] REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest f652ca386ed1 2 weeks ago 141MB
使用nginx镜像来创建nginx容器
<span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> 345d45dd2894ed81598bd15c62bf43c0c12f709ab13d904a31b2c0e39c99853c<span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> 345d45dd2894ed81598bd15c62bf43c0c12f709ab13d904a31b2c0e39c99853c[root@localhost ~] 345d45dd2894ed81598bd15c62bf43c0c12f709ab13d904a31b2c0e39c99853c
- -d:在后台运行
- -p: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口
- –rm:容器停止运行后,自动删除容器文件
- –name nginx-test:容器的名字,自己定义
然后就可以通过80端口访问nginx了.
现在本地创建一个nginx文件夹,注意{}
中不能有空格。
<span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> <span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> html logs<span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> <span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> html logs[root@localhost ~] [root@localhost ~] html logs
查看启动的Nginx运行状态:
<span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 345d45dd2894 nginx <span class="token string">"/docker-entrypoint.…"</span> <span class="token number">7</span> minutes ago Up <span class="token number">7</span> minutes <span class="token number">0.0</span>.0.0:80-<span class="token operator">></span><span class="token number">80</span>/tcp, :::80-<span class="token operator">></span><span class="token number">80</span>/tcp nginx-test<span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 345d45dd2894 nginx <span class="token string">"/docker-entrypoint.…"</span> <span class="token number">7</span> minutes ago Up <span class="token number">7</span> minutes <span class="token number">0.0</span>.0.0:80-<span class="token operator">></span><span class="token number">80</span>/tcp, :::80-<span class="token operator">></span><span class="token number">80</span>/tcp nginx-test[root@localhost ~] CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 345d45dd2894 nginx "/docker-entrypoint.…" 7 minutes ago Up 7 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp nginx-test
把容器里面的 Nginx 配置文件拷贝到本地
<span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> <span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> html logs nginx <span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> <span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params<span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> <span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> html logs nginx <span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> <span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params[root@localhost ~] [root@localhost ~] html logs nginx [root@localhost ~] [root@localhost ~] conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params
配置反向代理,配置好后保存
<span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> server <span class="token punctuation">{<!-- --></span> listen <span class="token number">80</span><span class="token punctuation">;</span> listen <span class="token punctuation">[</span>::<span class="token punctuation">]</span>:80<span class="token punctuation">;</span> server_name <span class="token number">10.102</span>.10.240<span class="token punctuation">;</span> location / <span class="token punctuation">{<!-- --></span> root /usr/share/nginx/html<span class="token punctuation">;</span> index index.html index.htm<span class="token punctuation">;</span> <span class="token punctuation">}</span> location /api/ <span class="token punctuation">{<!-- --></span> proxy_pass http://192.168.0.100:8080/api/<span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">..</span><span class="token punctuation">..</span><span class="token punctuation">..</span><span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> server <span class="token punctuation">{<!-- --></span> listen <span class="token number">80</span><span class="token punctuation">;</span> listen <span class="token punctuation">[</span>::<span class="token punctuation">]</span>:80<span class="token punctuation">;</span> server_name <span class="token number">10.102</span>.10.240<span class="token punctuation">;</span> location / <span class="token punctuation">{<!-- --></span> root /usr/share/nginx/html<span class="token punctuation">;</span> index index.html index.htm<span class="token punctuation">;</span> <span class="token punctuation">}</span> location /api/ <span class="token punctuation">{<!-- --></span> proxy_pass http://192.168.0.100:8080/api/<span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">..</span><span class="token punctuation">..</span><span class="token punctuation">..</span>[root@localhost ~] server { listen 80; listen [::]:80; server_name 10.102.10.240; location / { root /usr/share/nginx/html; index index.html index.htm; } location /api/ { proxy_pass http://192.168.0.100:8080/api/; } ......
配置生效后,所有/api/开头的地址都会被重定向到设置的地址。
例如访问http://10.102.10.240/api/test.txt
,会返回http://192.168.0.100:8080/api/test.txt
的内容。
停止之前创建的容器,重新新建一个容器并映射目录。
<span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> nginx-test <span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> 7fd5ee130f570748d6f21f01586efacd46ce40a3cbf4a952e095f32de4332ca3<span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> nginx-test <span class="token punctuation">[</span>root@localhost ~<span class="token punctuation">]</span> 7fd5ee130f570748d6f21f01586efacd46ce40a3cbf4a952e095f32de4332ca3[root@localhost ~] nginx-test [root@localhost ~] 7fd5ee130f570748d6f21f01586efacd46ce40a3cbf4a952e095f32de4332ca3
如果修改了配置文件,需要重新启动一下服务:
docker <span class="token builtin class-name">exec</span> -it nginx-web nginx -s reloaddocker <span class="token builtin class-name">exec</span> -it nginx-web nginx -s reloaddocker exec -it nginx-web nginx -s reload
原文链接:https://blog.csdn.net/zouxiong122/article/details/121992786
© 版权声明
声明📢本站内容均来自互联网,归原创作者所有,如有侵权必删除。
本站文章皆由CC-4.0协议发布,如无来源则为原创,转载请注明出处。
THE END