摘要:以的網(wǎng)絡(luò)管理,容器的設(shè)置為基礎(chǔ)知識(shí)實(shí)現(xiàn)負(fù)載均衡查看所有網(wǎng)絡(luò)是上一篇介紹時(shí),文件所在的目錄名,所以,用創(chuàng)建的容器會(huì)默認(rèn)創(chuàng)建一個(gè)以目錄名為網(wǎng)絡(luò)名的網(wǎng)絡(luò),并且是橋接類型指定容器地址官網(wǎng)文檔地址繼續(xù)編寫(xiě)上一篇使用容器編排工具文章中的
以Docker的網(wǎng)絡(luò)管理,容器的IP設(shè)置為基礎(chǔ)知識(shí)實(shí)現(xiàn)Nginx負(fù)載均衡
查看所有docker網(wǎng)絡(luò)
docker network ls /* NETWORK ID NAME DRIVER SCOPE b832b168ca9a bridge bridge local 373be82d3a6a composetest_default bridge local a360425082c4 host host local 154f600f0e90 none null local */ // composetest_default 是上一篇介紹Compose時(shí),docker-compose.yml文件所在的目錄名, // 所以,用docker-compose創(chuàng)建的容器會(huì)默認(rèn)創(chuàng)建一個(gè)以目錄名為網(wǎng)絡(luò)名的網(wǎng)絡(luò),并且是dridge(橋接)類型
指定容器IP地址
官網(wǎng)文檔地址:https://docs.docker.com/compo...
繼續(xù)編寫(xiě)上一篇《12.使用Docker Compose容器編排工具》文章中的docker-compose.yml
version: "3" services: web1: container_name: web1 image: "centos:httpd" ports: - "8080:80" privileged: true volumes: - "/app/www/web1/:/var/www/html/" command: ["/usr/sbin/init"] networks: nginx-lsb: ipv4_address: 192.169.0.3 web2: container_name: web2 image: "centos:httpd" ports: - "8081:80" privileged: true volumes: - "/app/www/web2/:/var/www/html/" command: ["/usr/sbin/init"] networks: nginx-lsb: ipv4_address: 192.169.0.2 networks: nginx-lsb: driver: bridge ipam: config: - subnet: 192.169.0.0/16
使用docker-compose啟動(dòng)容器
docker-compose up -d
查看容器是否啟動(dòng),并確認(rèn)是否創(chuàng)建了網(wǎng)絡(luò) nginx-lsb
// 可以查看當(dāng)前docker-compose.yml配置的容器組里的容器狀態(tài) docker-compose ps docker network ls /* NETWORK ID NAME DRIVER SCOPE b832b168ca9a bridge bridge local 373be82d3a6a composetest_default bridge local de6f5b8df1c8 composetest_nginx-lsb bridge local a360425082c4 host host local 154f600f0e90 none null local */ // 創(chuàng)建了nginx-lsb網(wǎng)絡(luò),命名是容器組項(xiàng)目的 文件名開(kāi)頭_網(wǎng)絡(luò)名
查看網(wǎng)絡(luò) nginx-lsb的詳情
docker network inspect composetest_nginx-lsb // 詳情里面可以看到使用這個(gè)網(wǎng)絡(luò)的每個(gè)容器的ip 如: /* ... "Containers": { "039aa860ef04f20a7566fdc943fb4398a61d2ad6dd3e373b17c86ac778af89e3": { "Name": "web2", "EndpointID": "1bc206661179e65999015f132c2889d3d4365b8d42b8a89cf9c260016fedd5ee", "MacAddress": "02:42:c0:a9:00:02", "IPv4Address": "192.169.0.2/16", "IPv6Address": "" }, "437ad7a07da8e46c0abaf845c4b08425338009fbe972bde69478cf47c75c315b": { "Name": "web1", "EndpointID": "5a36e602a5364ee9ad06e9816d09e3966d56ebf06b9394ebc25b8bcee9546607", "MacAddress": "02:42:c0:a9:00:03", "IPv4Address": "192.169.0.3/16", "IPv6Address": "" } }, ... */
使用 env_file環(huán)境文件:
簡(jiǎn)單可以理解為:在docker-compose.yml中定義變量,引用在外部.env文件中進(jìn)行變量定義
官方文檔地址:https://docs.docker.com/compo...
// 還是在composetest目錄中定義個(gè) .env文件,用來(lái)存放變量 web1_addr=192.169.0.2 web2_addr=192.169.0.3 // 修改docker-compose.yml文件,加入變量定義 version: "3" services: web1: container_name: web1 image: "centos:httpd" ports: - "8080:80" privileged: true volumes: - "/app/www/web1/:/var/www/html/" command: ["/usr/sbin/init"] networks: nginx-lsb: ipv4_address: ${web1_addr} web2: container_name: web2 image: "centos:httpd" ports: - "8081:80" privileged: true volumes: - "/app/www/web2/:/var/www/html/" command: ["/usr/sbin/init"] networks: nginx-lsb: ipv4_address: ${web2_addr} networks: nginx-lsb: driver: bridge ipam: config: - subnet: 192.169.0.0/16
重新啟動(dòng)composetest項(xiàng)目,并查看網(wǎng)絡(luò)詳情,確認(rèn)容器ip是否設(shè)置成功
// 重新啟動(dòng)composetest項(xiàng)目 docker-compose up -d // 查看網(wǎng)絡(luò)詳情 docker network inspect composetest_nginx-lsb
在composetest項(xiàng)目中添加一臺(tái)nginx服務(wù)器作為負(fù)載均衡服務(wù)器
// 在.env文件里添加一個(gè)變量 nginx_lsb web1_addr=192.169.0.2 web2_addr=192.169.0.3 nginx_lsb=192.169.0.100 // 修改docker-compose.yml文件,加入變量定義 version: "3" services: nginx-lsb: container_name: nginx-lsb image: "centos:nginx" ports: - "8000:80" privileged: true volumes: - "/app/nginx/nginx.conf:/etc/nginx/nginx.conf" networks: nginx-lsb: ipv4_address: ${nginx_lsb} web1: container_name: web1 image: "centos:httpd" ports: - "8080:80" privileged: true volumes: - "/app/www/web1/:/var/www/html/" command: ["/usr/sbin/init"] networks: nginx-lsb: ipv4_address: ${web1_addr} web2: container_name: web2 image: "centos:httpd" ports: - "8081:80" privileged: true volumes: - "/app/www/web2/:/var/www/html/" command: ["/usr/sbin/init"] networks: nginx-lsb: ipv4_address: ${web2_addr} networks: nginx-lsb: driver: bridge ipam: config: - subnet: 192.169.0.0/16 // 重新啟動(dòng)composetest項(xiàng)目 docker-compose up -d
修改nginx.conf配置文件,配置負(fù)載均衡
upstream mydocker { server 192.169.0.2; server 192.169.0.3; } server { listen 80; server_name mydocker; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_buffering off; proxy_pass http://mydocker; } }
重新啟動(dòng)nginx-lsb,加載配置文件
docker-composer restart nginx-lsb
訪問(wèn) http://服務(wù)器IP地址:8000,測(cè)試服務(wù)器負(fù)載均衡!
注意:上一篇已經(jīng)在兩臺(tái)httpd服務(wù)器上放置了不同的web文件
原文鏈接:http://www.mi#/articles/20
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/27853.html
摘要:以的網(wǎng)絡(luò)管理,容器的設(shè)置為基礎(chǔ)知識(shí)實(shí)現(xiàn)負(fù)載均衡查看所有網(wǎng)絡(luò)是上一篇介紹時(shí),文件所在的目錄名,所以,用創(chuàng)建的容器會(huì)默認(rèn)創(chuàng)建一個(gè)以目錄名為網(wǎng)絡(luò)名的網(wǎng)絡(luò),并且是橋接類型指定容器地址官網(wǎng)文檔地址繼續(xù)編寫(xiě)上一篇使用容器編排工具文章中的 以Docker的網(wǎng)絡(luò)管理,容器的IP設(shè)置為基礎(chǔ)知識(shí)實(shí)現(xiàn)Nginx負(fù)載均衡 查看所有docker網(wǎng)絡(luò) docker network ls /* NETWORK I...
摘要:譯者按實(shí)踐中會(huì)發(fā)現(xiàn),生產(chǎn)環(huán)境中使用單個(gè)節(jié)點(diǎn)是遠(yuǎn)遠(yuǎn)不夠的,搭建集群勢(shì)在必行。集群的網(wǎng)絡(luò)通信服務(wù)發(fā)現(xiàn),負(fù)載均衡以及容器間通信非??煽?。負(fù)載均衡也是由提供的。 譯者按: 實(shí)踐中會(huì)發(fā)現(xiàn),生產(chǎn)環(huán)境中使用單個(gè)Docker節(jié)點(diǎn)是遠(yuǎn)遠(yuǎn)不夠的,搭建Docker集群勢(shì)在必行。然而,面對(duì)Kubernetes, Mesos以及Swarm等眾多容器集群系統(tǒng),我們?cè)撊绾芜x擇呢?它們之中,Swarm是Docker原...
摘要:應(yīng)該如何解決本文將給出若干提示,如何在生產(chǎn)環(huán)境中使用。路由匹配服務(wù)發(fā)現(xiàn)負(fù)載均衡跨容器通訊非??煽俊T趩蝹€(gè)端口上運(yùn)行一個(gè)服務(wù),節(jié)點(diǎn)的任意主機(jī)都可以訪問(wèn),負(fù)載均衡完全在后臺(tái)實(shí)現(xiàn)。 上周數(shù)人云給大家分享了——《你可能需要的關(guān)于Docker Swarm的經(jīng)驗(yàn)分享》今天給大家?guī)?lái)這位作者大大的后續(xù)文章——《Docker Swarm在生產(chǎn)環(huán)境中的進(jìn)階指南》 當(dāng)在本地開(kāi)發(fā)環(huán)境中使用Docker,或者...
摘要:部署只是一種規(guī)則,控制器組件會(huì)將這一規(guī)則應(yīng)用于實(shí)際負(fù)載均衡器中。原因是功能僅允許將端口用于路由,負(fù)載均衡器和則可作為全局啟動(dòng)。負(fù)載均衡的限制提供了功能豐富的負(fù)載均衡器支持詳細(xì)介紹在此。截至目前,我們暫時(shí)無(wú)法使用工具將負(fù)載均衡器配置從轉(zhuǎn)換為。 如果您的應(yīng)用程序是面向大量用戶、會(huì)吸引大量流量,那么一個(gè)不變的目標(biāo)一定是在高效滿足用戶需求的同時(shí)、不讓用戶感知到任何類似于服務(wù)器繁忙!的情況。這一...
閱讀 1561·2023-04-26 02:03
閱讀 4761·2021-11-22 13:53
閱讀 4681·2021-09-09 11:40
閱讀 3854·2021-09-09 09:34
閱讀 2157·2019-08-30 13:18
閱讀 3533·2019-08-30 11:25
閱讀 3323·2019-08-26 14:06
閱讀 2565·2019-08-26 13:52