docker-compose管理容器network與ip問(wèn)題
docker-compose管理容器時(shí),通常需要設(shè)定network,指定容器的ip,這樣容器在啟動(dòng)時(shí)會(huì)通過(guò)指定的ip與宿主機(jī)橋接網(wǎng)絡(luò)通信,同樣可以通過(guò)ip實(shí)現(xiàn)容器之間的通信。
新建docker的network橋接網(wǎng)絡(luò)
docker network create docker1 -o com.docker.network.bridge.name=docker1 -o com.docker.network.bridge.host_binding_ipv4=0.0.0.0 --driver=bridge --subnet=172.20.0.0/16 --gateway=172.20.0.1
- docker1 橋接網(wǎng)卡名稱
- subnet 子網(wǎng)掩碼
- gateway 網(wǎng)關(guān)
查看新建網(wǎng)橋
docker network ls

docker network inspect docker1

docker容器
docker-compose.yml管理多個(gè)容器
version: '2'
networks:
docker1: ### 自建的network
external: true
services:
mgnt:
image: mgnt
container_name: mgnt
hostname: mgnt
restart: always
command: supervisord -n -c /code/mgnt/supervisord.conf
volumes:
- /opt/mgnt/conf/serverConfig.json:/code/mgnt/frontend/static/serverConfig.json
- /opt/mgnt/conf/oem:/code/mgnt/frontend/static/img/oem
- /opt/mgnt/conf/oem.json:/code/mgnt/frontend/static/oem.json
- /opt/mgnt/conf/settings.py:/code/mgnt/backend/server/settings.py
- /opt/mgnt/conf/supervisord.conf:/code/mgnt/supervisord.conf
- /opt/mgnt/conf/redis/redis.conf:/etc/redis.conf
- /opt/mgnt/conf/license:/etc/fass/license
ports:
- "8000:8000"
- "80:80"
depends_on:
- mgnt_mysql
- influxdb
networks:
docker1:
ipv4_address: 172.20.0.3 ###容器固定ip
mgnt_mysql:
image: mgnt_mysql
container_name: mgnt_mysql
hostname: mgnt_mysql
restart: always
ports:
- 3308:3306
volumes:
- /opt/mgnt/data:/var/lib/mysql
- /opt/mgnt/conf/mysql/my.cnf:/etc/my.cnf
- /opt/mgnt/conf/mysql/conf.d:/etc/mysql/conf.d
- /opt/mgnt/conf/mysql/mysql.conf.d:/etc/mysql/mysql.conf.d
environment:
- MYSQL_PORT=3306
- MYSQL_DATABASE=mgnt
- MYSQL_USER=admin
- MYSQL_PASSWORD=sysadmin
- MYSQL_ROOT_PASSWORD=sysadmin
networks:
docker1:
ipv4_address: 172.20.0.2
influxdb:
image: influxdb:alpine
container_name: influxdb
hostname: influx
restart: always
volumes:
- /var/lib/influxdb:/var/lib/influxdb
ports:
- "8086:8086"
networks:
docker1:
ipv4_address: 172.20.0.4
開啟容器后docker1網(wǎng)橋內(nèi)容
[
{
"Name": "docker1",
"Id": "d1f2a4c0afe4b418e855dacc68f7fe3991d93b51c1ebd049ce1c5c81b598ae24",
"Created": "2021-02-01T02:41:48.327058853-05:00",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.20.0.0/16",
"Gateway": "172.20.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"53b25b5832b6757f81653e2ed6f5a237d59950825c9e9015272dbd0ff673da5e": {
"Name": "mgnt",
"EndpointID": "0ed1a8d0d6cf444320e0fe985d2bcfcf70d80111b37928eb1519045f8ffa0336",
"MacAddress": "02:42:ac:14:00:03",
"IPv4Address": "172.20.0.3/16", ### 容器ip
"IPv6Address": ""
},
"b3623f6a04d56f7ade8022d289fbbd4fbd3409a5da1c08cd9293511b656481a5": {
"Name": "mgnt_mysql",
"EndpointID": "f05cf474e861e86e8cd7dfa6a5bdc43368c6af3b01e22d657f92b0a2ace913f1",
"MacAddress": "02:42:ac:14:00:02",
"IPv4Address": "172.20.0.2/16", ### 容器ip
"IPv6Address": ""
},
"e99f3d048e384732c12673989aea3814ecbf873e5850d87b36fe70d016861293": {
"Name": "influxdb",
"EndpointID": "17a3874417ee95b91c421a4beb281df067682eaf46e4f37ab929f76866b6c795",
"MacAddress": "02:42:ac:14:00:04",
"IPv4Address": "172.20.0.4/16", ### 容器ip
"IPv6Address": ""
}
},
"Options": {
"com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
"com.docker.network.bridge.name": "docker1"
},
"Labels": {}
}
]
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker搭建Minio容器的流程步驟(完整詳細(xì)版)
Minio 是一個(gè)基于Apache License v2.0開源協(xié)議的對(duì)象存儲(chǔ)服務(wù),雖然輕量,卻擁有著不錯(cuò)的性能,它兼容亞馬遜S3云存儲(chǔ)服務(wù)接口,非常適合于存儲(chǔ)大容量非結(jié)構(gòu)化的數(shù)據(jù),本文將給大家介紹Docker搭建Minio容器的流程步驟,需要的朋友可以參考下2024-08-08
使用Docker部署 spring-boot maven應(yīng)用的方法
本篇文章主要介紹了使用Docker部署 spring-boot maven應(yīng)用的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
Docker 部署 PostgreSQL數(shù)據(jù)庫(kù)的兩種方式
本文介紹了使用Docker部署PostgreSQL數(shù)據(jù)庫(kù)的兩種方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2025-07-07
Docker Gitlab+Jenkins+Harbor構(gòu)建持久化平臺(tái)操作
這篇文章主要介紹了Docker Gitlab+Jenkins+Harbor構(gòu)建持久化平臺(tái)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
Rocky Linux 9.2下使用dnf安裝Docker全流程指南
Docker 是當(dāng)前最流行的容器化平臺(tái),本文以 Rocky Linux 9.2 為例,詳細(xì)介紹如何使用 dnf 命令安裝 Docker,完成配置并進(jìn)行基礎(chǔ)使用,希望對(duì)大家有所幫助2025-08-08
docker從安裝入門到應(yīng)用部署及私有倉(cāng)庫(kù)搭建基礎(chǔ)命令
這篇文章主要為大家介紹了docker從安裝入門到應(yīng)用部署及私有倉(cāng)庫(kù)搭建基礎(chǔ)命令,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04

