Docker-compose fixed network IP
2019. 8. 28. 16:13ㆍ[정리] 기능별 개념 정리/Docker
문제 상황
- docker-compose 를 사용하여 컨테이너들을 여러개 띄울 경우 자체적인 네트워크를 하나 생성한다.
- 이 네트워크는 172.AAA.BBB.CCC/16 으로 할당이 된다.
- 이때 AAA는 1~254 사이에 랜덤하게 생성되기 때문에 만약 이미 사용중인 다른 네트워크 IP 가 있을 경우 라우팅 문제가 생길 수 있다.
[Sample] myDocker/docker-compose.yml
version: "3"
services:
zookeeper:
image: wurstmeister/zookeeper
container_name: myZookeeper
ports:
- "2181:2181"
networks:
- myNetwork
kafka:
image: wurstmeister/kafka:2.11-1.1.1
container_name: myKafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_CREATE_TOPICS: "myFirstTopic:1:1,mySecondTopic:1:1"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- myNetwork
db:
image: mysql:5.7
container_name: myMysql
restart: always
environment:
MYSQL_DATABASE: "myDatabase"
MYSQL_USER: "myUser"
MYSQL_PASSWORD: "myPassword"
MYSQL_ROOT_PASSWORD: "rootPassword"
ports:
- "3306:3306"
expose:
- "3306"
volumes:
- data-mysql:/var/lib/mysql
- ./mysql/init:/docker-entrypoint-initdb.d/:ro
networks:
- myNetwork
volumes:
data-mysql:
networks:
myNetwork:
ipam:
driver: default
config:
- subnet: 172.202.0.1/16
172.202.BBB.CCC 으로 자동으로 생성되게 변경하였다.
다음 커맨드를 쳐서 docker-compose 가 만든 network 망을 볼 수 있다.
docker network ls
다음 커맨드를 사용하면 해당 network 망에대한 상세정보를 확인할 수 있다.
docker network inspect {network-name}
ex.
[
{
"Name": "myNetwork",
"Id": "----------",
"Created": "----------",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.202.0.1/16"
}
]
},
"Internal": false,
"Attachable": true,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"----------containerID----------": {
"Name": "myKafka",
"EndpointID": "----------",
"MacAddress": "----------",
"IPv4Address": "172.202.0.2/16",
"IPv6Address": ""
},
"----------containerID----------": {
"Name": "myZookeeper",
"EndpointID": "----------",
"MacAddress": "----------",
"IPv4Address": "172.202.0.3/16",
"IPv6Address": ""
},
"----------containerID----------": {
"Name": "myMysql",
"EndpointID": "----------",
"MacAddress": "----------",
"IPv4Address": "172.202.0.4/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {
"com.docker.compose.network": "myNetwork",
"com.docker.compose.project": "myDocker",
"com.docker.compose.version": "1.23.2"
}
}
]
'[정리] 기능별 개념 정리 > Docker' 카테고리의 다른 글
도커 강의 정리 ( 3강 : 스택(docker-compose.yml) ) (0) | 2019.06.07 |
---|---|
도커 강의 정리 ( 2강 : 서비스, 클러스터 (Swarm) ) (0) | 2019.06.07 |
도커 강의 정리 ( 1강 : 이미지 (Dockerfile) ) (0) | 2019.06.07 |
docker-compose.yml (0) | 2019.03.26 |
[2019.03.05] Docker-machine (0) | 2019.03.05 |