컨테이너는 각각 구분되어 실행되고 분리되어있어서 다른 컨테이너가 무슨 일을 하는지 모른다. 그래서 컨테이너가 다른 컨테이너와 통신하고자 한다면 컨테이너 네트워킹
을 하면된다. 단, 동일한 네트워크에 있어야함
나는 1. Todo App(네트워크) 과 2. MySql(컨테이너) 이 두가지를 연결하고자 한다.
1) 네트워크 생성
$ docker network create todo-app
2) MySql 컨테이너 실행 및 네트워크 연결, DB 초기화, 환경변수 정의 (참고: MySql Docker Hub)
$ docker run -d `
--network todo-app --network-alias mysql `
-v todo-mysql-data:/var/lib/mysql `
-e MYSQL_ROOT_PASSWORD=secret `
-e MYSQL_DATABASE=todos `
mysql:5.7
3) MySql 작동 확인
$ docker exec -it <mysql-container-id> mysql -u root -p
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| todos |
+--------------------+
5 rows in set (0.00 sec)
172.18.0.2
Reference
다중컨테이너앱