一臺主機通過docker compose編排運行一個系統沒什麼問題,如果要運行多個相同的系統怎麼做呢?
以部署wordpress(LNMP)爲例,其實很簡單,只需要修改三處:
1、對外暴露端口
修改docker-compose.xml中對外暴露端口的ports:
nginx:
mysql:
2、容器name
修改docker-compose.xml中容器的name:
nginx、wordpress、mysql分別修改(添加)container_name
爲唯一即可
3、數據庫涉及ip:port的配置
對於Wordpress,Mysql中有保存訪問wordpress網站的host配置(若沒有域名,是ip+port),需要將其手動改爲第一步配置的暴露出的nginx端口+ip。
4、若出現服務混淆錯亂
所謂服務混淆錯亂,如:一個docker-compose.yml部署的wordpress1,另一個docker-compose.yml部署的wordpress2。可能有時出現wordpress2調用了wordpress1的Mysql服務。
原因:可能是兩個docker-compose編排的Mysql內部端口一樣。以及共用了一個網絡。
解決:
1、wordpress2新建一個網絡
docker network create wordpress2
2、修改docker-compose.xml容器所用網絡爲:wordpress2
修改所用網絡:
networks:
wordpress2:
external: true
修改每個容器網絡:
networks:
wordpress2:
aliases:
- mysql