Docker Nginx容器和Tomcat容器实现负载均衡与动静分离 *** 作

Docker Nginx容器和Tomcat容器实现负载均衡与动静分离 *** 作,第1张

DockerNginx容器和Tomcat容器实现负载均衡与动静分离 *** 作

本文主要介绍DockerNginx容器和Tomcat容器实现负载均衡和动静分离 *** 作,具有很好的参考价值。希望对大家有帮助。来和边肖一起看看吧。

下载Tomcat8映像

[root@localhost~]#dockersearchtomcat8 NAMEDESCRIPTIONSTARSOFFICIALAUTOMATED ashince/tomcat8TomcatGUIManagerpre-configureddockerima…5 podbox/tomcat82[OK]

这个tomcat包含jdk,可以直接访问,它自己启动8080端口

[root@localhost~]#dockerpullashince/tomcat8 Usingdefaulttag:latest latest:Pullingfromashince/tomcat8 06b22ddb1913:Pullingfslayer 336c28b408ed:Pullcomplete 1f3e6b8d80c3:Pullcomplete [root@localhost~]#dockerimages REPOSITORYTAGIMAGEIDCREATEDSIZE nginxlatest2622e6cca7eb2weeksago132MB ashince/tomcat8latest02aedead27dd22monthsago314MB 启动一个Nginx容器和两个Tomcat容器 [root@localhost~]#dockerrun-itd-p8080:8080ashince/tomcat8 3e3f2aabe67de7ee3f4b6d62176e21aaa9d2302922845cb08ad37af7146b13c5 [root@localhost~]#dockerrun-itd-p8081:8080ashince/tomcat8 644d59711c805a626b7c1c219aa018f744098a14dd41e54744d6b13e7ba66a2f [root@localhost~]#dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES cca55c4ad919ashince/tomcat8"catalina.shrun"AboutaminuteagoUpAboutaminute0.0.0.0:8081->8080/tcpunruffled_lalande 08b58d2f41d6ashince/tomcat8"catalina.shrun"7minutesagoUp7minutes0.0.0.0:8080->8080/tcprelaxed_williamson aeebcb0b40a2nginx"/docker-entrypoint.…"2hoursagoUp2hours0.0.0.0:80->80/tcppriceless_ardinghelli

#将Nginx容器当中的配置拷贝到本地修改,因为容器当中没有vivim命令 [root@localhost~]#dockercp68d2bdf336ed:/etc/nginx/conf.d/default.conf. [root@localhost~]#ls anaconda-ks.cfgdefault.confindex.html [root@localhost~]#grep-vE"#|^$"default.conf server{ listen80; listen[::]:80; server_namelocalhost; location/{ root/usr/share/nginx/html; indexindex.htmlindex.htm; } error_page500502503504/50x.html; location=/50x.html{ root/usr/share/nginx/html; } } #两台tomcat的ip地址 [root@localhost~]#foriin{72e174adc77d,080068dae40a};dodockerinspect$i|grep-iipaddr|tail-n1;done "IPAddress":"172.17.0.4", "IPAddress":"172.17.0.3", 拷贝静态资源到Nginx目录下做动静分离,同时修改配置文件 #将其中一台Tomcat的ROOT目录拷贝到本地,因为做动静分离Nginx需要访问静态资源要在本地 [root@localhost~]#dockercp72e174adc77d:/usr/local/tomcat/webapps/ROOT. #拷贝到Nginx发布目录下面 [root@localhost~]#dockercpROOT68d2bdf336ed:/usr/share/nginx/html/ [root@localhostWEB-INF]#dockerexec68d2bdf336edls-l/usr/share/nginx/html/ROOT total184 -rwxrwxrwx1rootroot7064Jun212017RELEASE-NOTES.txt drwxrwxrwx2rootroot21Jul272017WEB-INF -rwxrwxrwx1rootroot26447Jun212017asf-logo-wide.svg -rwxrwxrwx1rootroot713Jun212017bg-button.png -rwxrwxrwx1rootroot1918Jun212017bg-middle.png -rwxrwxrwx1rootroot1392Jun212017bg-nav-item.png -rwxrwxrwx1rootroot1401Jun212017bg-nav.png -rwxrwxrwx1rootroot3103Jun212017bg-upper.png -rwxrwxrwx1rootroot21630Jun212017favicon.ico -rwxrwxrwx1rootroot12279Jun212017index.jsp -rwxrwxrwx1rootroot2376Jun212017tomcat-power.gif -rwxrwxrwx1rootroot5581Jun212017tomcat.css -rwxrwxrwx1rootroot2066Jun212017tomcat.gif -rwxrwxrwx1rootroot5103Jun212017tomcat.png -rwxrwxrwx1rootroot67795Jun212017tomcat.svg #修改后的Nginx配置文件如下,修改完后拷贝会容器当中 [root@localhost~]#dockercpdefault.conf68d2bdf336ed:/etc/nginx/conf.d/default.conf [root@localhost~]#dockerexec68d2bdf336edcat/etc/nginx/conf.d/default.conf upstreamtomcat_web{ server172.17.0.3:8080weight=100max_fails=2fail_timeout=15; server172.17.0.4:8080weight=100max_fails=2fail_timeout=15; } server{ listen80; listen[::]:80; server_namelocalhost; error_page500502503504/50x.html; root/usr/share/nginx/html; location/{ proxy_passhttp://tomcat_web; proxy_set_headerhost$host; } location~.*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)${ root/usr/share/nginx/html/ROOT; expires30d; access_logoff; } location~.*\.(eot|ttf|otf|woff|svg)${ root/usr/share/nginx/html/ROOT; expires30d; access_logoff; } location~.*\.(js|css)${ root/usr/share/nginx/html/ROOT; expires30d; access_logoff; } location=/50x.html{ root/usr/share/nginx/html; } } #加载新的配置项 [root@localhost~]#dockerexec-it68d2bdf336ed/bin/bash root@68d2bdf336ed:/#/usr/sbin/nginx-sreload 2020/06/2907:12:05[notice]79#79:signalprocessstarted

如图所示访问Nginx80端口:

附加知识:Docker基本 *** 作容器删除映像并删除容器自启动

Docker容器自动重新启动设置

重启重启 *** 作系统后,我发现docker服务没有启动,容器也没有启动。重启后如何自动启动?

1。docker服务自动重新启动设置

[root@localhost~]#systemctl启用docker.service

2、docker容器自动启动设置

[root@localhost~]#dockerimages REPOSITORYTAGIMAGEIDCREATEDSIZE nginxlatest5a3221f0137b10monthsago126MB [root@localhost~]#dockerrun-itd-p80:80nginx 3e28c4b5c6256c0ba04666751e426987d848b7afeb9c59774d5e9831dc78e5ee [root@localhost~]#dockerrun-itd-p81:80nginx f0597c725fd6b7f4229aa9ab5de4a3cb29d09097a81dc8f64d1a60d469001379 [root@localhost~]#dockerportf0597c725fd6 80/tcp->0.0.0.0:81 [root@localhost~]#dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES f0597c725fd6nginx"nginx-g'daemonof??30secondsagoUp29seconds0.0.0.0:81->80/tcpelastic_allen 3e28c4b5c625nginx"nginx-g'daemonof??35secondsagoUp33seconds0.0.0.0:80->80/tcptender_volhard

3。docker容器自动启动设置

[root@localhost~]#dockerupdate--restart=alwaysf0597c725fd63e28c4b5c625 f0597c725fd6 3e28c4b5c625 [root@localhost~]#reboot-hnow Connectionclosedbyforeignhost. [root@localhost~]#dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES f0597c725fd6nginx"nginx-g'daemonof??13minutesagoUp2minutes0.0.0.0:81->80/tcpelastic_allen 3e28c4b5c625nginx"nginx-g'daemonof??13minutesagoUp2minutes0.0.0.0:80->80/tcptender_volhard

当主机中有许多镜像和容器需要重置时,您可以选择删除部分或全部镜像和容器。那么就需要下面的 *** 作。

1。删除容器

[root@localhost~]#dockerps-a CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 27c5c4d3cf86nginx"nginx-g'daemonof??2minutesagoUp2minutes0.0.0.0:80->80/tcpgracious_nash 61cccfe238a8nginx"nginx-g'daemonof??2minutesagoUp2minutes0.0.0.0:81->80/tcpdistracted_grothendieck [root@localhost~]#dockerps-aq 27c5c4d3cf86 61cccfe238a8

1)首先,您需要停止所有容器。

[root@localhost~]#dockerps-aq f0597c725fd6 3e28c4b5c625 8855c7777f83 466d2efe3dd9 20ca589b1a10 e5457b41cae6 314d1d01c941 [root@localhost~]#dockerstop$(dockerps-aq) f0597c725fd6 3e28c4b5c625 8855c7777f83 466d2efe3dd9 20ca589b1a10 e5457b41cae6 314d1d01c941 [root@localhost~]#dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES

2)删除所有容器(仅在删除单个容器时将以下变量更改为图像id)

[root@localhost~]#dockerrm-f$(dockerps-aq) f0597c725fd6 3e28c4b5c625 8855c7777f83 466d2efe3dd9 20ca589b1a10 e5457b41cae6 314d1d01c941 [root@localhost~]#dockerps-aq [root@localhost~]#

2。删除镜像

1)检查主机中的镜像。

docker图像

2)删除具有指定id的镜像

dockerrmi<图像id>

3)删除所有图像

dockerrmi$(docker图片-q)

3.当要删除的映像与其他镜像相关且无法删除时。

您可以通过-f参数强制删除。

dockerrmi-f$(docker图片-q)

以上DockerNginx容器和Tomcat容器实现了负载均衡和动静分离 *** 作,这是边肖共享的全部内容。希望给大家一个参考,多多支持我们。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/774129.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存