Docker容器實現Nginx的負載均衡

2021-10-11 01:25:14 字數 3908 閱讀 5668

準備工作

docker 主機

192.168.1.10

tomcat:latest

tomcat1

tomcat:latest

tomcat2

nginx:latest

nginx

準備好nginx 和 tomcat 映象

[root@localhost ~

]# docker images

repository tag image id created size

tomcat latest a92c139758db 2 years ago 558 mb

nginx latest 3f8a4339aadd 2 years ago 108 mb

建立共享卷用於容器和主機之間的對映目錄

*在啟動之前,我們先建立容器和主機之間的對映的共享卷*

[root@localhost

~]# mkdir www1

[root@localhost

~]# mkdir www2

[root@localhost

~]# cd www1

[root@localhost www1]# vi index.jsp //建立檔案,寫入如下內容

tomcat1<

/title>

<

/head>

<

% out.

println

("this is tomcat1");

%>

<

/body>

<

/html>

[root@localhost www1]# cd ..

[root@localhost

~]# cd www2 //進入另外乙個目錄

[root@localhost www2]# vi index.jsp //寫入如下內容

tomcat2<

/title>

<

/head>

<

% out.

println

("this is tomcat2");

%>

<

/body>

<

/html>

啟動tomcat映象為容器

[root@localhost

~]# docker run -itd --name tomcat1 -p -v /root/www1:

[root@localhost

~]# docker run -itd --name tomcat2 -p -v /root/www2:

讓宿主機的www1目錄和www2目錄對映到tomcat的**發布目錄中去

-v /root/www1:

-p 指定隨機埠

[root@localhost

~]# docker ps //檢視執行狀態

container id image command created status ports names

425d605672c3 tomcat:latest "catalina.sh run"

5 seconds ago up 4 seconds 0.0

.0.0

:32771

->

8080

/tcp tomcat2

cd9ca608a5be tomcat:latest "catalina.sh run"

11 seconds ago up 11 seconds 0.0

.0.0

:32770

->

8080

/tcp tomcat1

訪問測試注:如果這裡訪問不了,可能是因為tomcat沒有啟動我們可以執行以下操作:

[root@localhost ~]# docker exec -it tomcat2 /bin/bash //進入容器

root@425d605672c3:/usr/local/tomcat# cd bin/

root@425d605672c3:/usr/local/tomcat/bin# startup.sh //開啟服務即可

啟動nginx映象為容器

[root@localhost

~]# docker run -itd --name nginx -p 80

:80 nginx:latest //啟動nginx映象

[root@localhost

~]# docker ps

container id image command created status ports names

f850a7b10728 nginx:latest "nginx -g 'daemon ..."

2 seconds ago up 1 second 0.0

.0.0:80

->

80/tcp nginx

[root@localhost ~]# vi nginx.conf  //寫入如下內容即可

以為修改好了以後,我們將這個檔案複製到nginx容器裡面然後重啟容器即可

[root@localhost ~]# docker cp nginx.conf f850a7b10728

:/etc/nginx/nginx.conf

[root@localhost ~]# docker restart f850a7b10728

效果驗證

然後不斷重新整理(nginx會在tomcat1和tomcat2之間來回進行切換,達到負載分擔效果)

docker中nginx容器和php容器混合執行

該容器在文章 php環境容器大 制得,亦可用docker官方提供的php環境 啟動php容器 docker run name php1 v home wwwroot service config php config usr local php etc v home wwwroot home www...

docker 容器之nginx 篇

2.簡單執行nginx 容器 python docker run name my nginx d p 80 80 d nginx 3.將nginx 容器的一些配置掛載到宿主目錄下 python mkdir nginx mkdir nginx conf mkdir nginx logs mkdir n...

基於Docker容器安裝nginx

1 在docker倉庫中搜尋nginx映象 docker search nginxdocker pull docker.io nginxdocker imagesdocker images grep i nginxll var lib docker image 4 基於nginx映象啟動nginx應...