詳解docker容器間通信的一種方法
以我的ghost博客為例進行說明,我在VPS上用docker啟動了兩個ghost博客,還有一個Nginx做反向代理,將兩個域名分別指向兩個博客。
docker啟動命令
ghost:
docker run -e NODE_ENV=production --name ghost1 -v /path/to/data/ghost/ghost1/:/var/lib/ghost -d ghost docker run -e NODE_ENV=production --name ghost2 -v /path/to/data/ghost/ghost2/:/var/lib/ghost -d ghost
nginx:
docker run -p 80:80 --name nginx --link ghost1 --link ghost2 -v /path/to/data/nginx/nginx.conf:/etc/nginx/nginx.conf -d nginx
先啟動兩個ghost,然后啟動nginx。使用--link參數(shù)將容器“鏈接”到一起,此參數(shù)會在容器中加入環(huán)境變量并在/etc/hosts中插入一條容器名與IP的映射
root@fabfd4bacfda:/# cat /etc/hosts 172.17.0.3 ghost1 d19c0134011a 172.17.0.5 ghost2 0e2e66ba70e0 172.17.0.4 fabfd4bacfda
設(shè)置nginx反向代理
修改nginx.conf,在http段內(nèi)添加如下內(nèi)容
http { server { listen 80; server_name www.domain1.tk domain1.tk; location / { proxy_pass http://ghost1:2368; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } server { listen 80; server_name www.domain2.tk domain2.tk; location / { proxy_pass http://ghost2:2368; proxy_redirect off; 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_pass的值proxy_pass http://ghost2:2368;。 ghost2是nginx容器/etc/hosts中的一條,是由--link參數(shù)添加進來的。
設(shè)置完這些后,nginx就會將兩個域名的請求分別代理到兩個博客中。
補充
容器重啟后IP可能變化,所以直接在nginx.conf中指定IP并不是一個好方法。使用--link時hosts文件會隨著容器IP的變化更新,所以使用域名才是更容易維護的方法。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Docker容器內(nèi)不能聯(lián)網(wǎng)的6種解決方案
今天小編就為大家分享一篇關(guān)于Docker容器內(nèi)不能聯(lián)網(wǎng)的6種解決方案,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10Docker容器網(wǎng)絡(luò)地址的創(chuàng)建修改
Docker提供了一個方便的方式來配置容器的網(wǎng)絡(luò)地址,在本文中,我們將介紹如何修改Docker容器的網(wǎng)絡(luò)地址,本文主要介紹了Docker容器網(wǎng)絡(luò)地址的創(chuàng)建修改,感興趣的可以了解一下2024-01-01深入理解Docker Load和Docker Import的區(qū)別詳解
Docker是一個流行的容器化平臺,提供了豐富的命令和功能,其中docker load和docker import是兩個常用的命令,用于加載Docker鏡像,這篇文章主要給大家介紹了關(guān)于Docker Load和Docker Import區(qū)別的相關(guān)資料,需要的朋友可以參考下2024-03-03一臺虛擬機基于docker搭建大數(shù)據(jù)HDP集群的思路詳解
這篇文章主要介紹了一臺虛擬機基于docker搭建大數(shù)據(jù)HDP集群?,本篇文章主要講了大數(shù)據(jù)集群搭建的架構(gòu)設(shè)計和實現(xiàn)思路部分,后面文章會探討上層應(yīng)用的構(gòu)建,需要的朋友可以參考下2022-11-11docker中nginx的location轉(zhuǎn)發(fā)不生效的解決
這篇文章主要介紹了docker中nginx的location轉(zhuǎn)發(fā)不生效的解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06Docker安裝Nginx并部署及MySQL容器構(gòu)建全過程
眾所周知Docker是一種容器化技術(shù),可以用來快速部署和管理應(yīng)用程序,這篇文章主要給大家介紹了關(guān)于Docker安裝Nginx并部署及MySQL容器構(gòu)建的相關(guān)資料,需要的朋友可以參考下2024-02-02