각각의 Docker Container
독립적인 공간을 갖기 때문에 Container 끼리의 통신
은 불가능하다. 하지만, Docker Nework
를 사용하여 통신하고자 하는 Container 들을 동일한 Network 에 연결해주면 Container 끼리 통신이 가능하게 된다. 해당 포스팅에서는 Docker Nework 명령어의 사용법과 Container 들을 연결하여 서로 통신하는 방법에 대해 다룬다.
Network 조회
docker network ls
NETWORK ID NAME DRIVER SCOPE
ae07710dabe6 bridge bridge local
232402bf2ad3 host host local
3de7e3b06e4f none null local
Network 생성 및 확인
docker network create test-network
Container 에 Network 연결
Network 연결 확인
Container 에 Network 해제
Network 해제 확인
불필요한 Docker Network 제거
Docker Container 끼리 이름으로 통신할 수 있는 Virtual Network 생성. 아래 예는 app-network 라는 이름으로 네트워크를 생성. (예. wordpress 와 mysql 이 통신할 네트워크를 생성)
docker network create [OPTIONS] NETWORK
docker network create app-network
기존의 Container 에 Network 를 추가. 아래 예는 mysql 이름의 Container 에 Network 를 추가
docker network connect [OPTIONS] NETWORK CONTAINER
docker network connect app-network mysql
—network 옵션을 사용하여 네트워크에 속하게 만드는 법. 아래 예는 워드프레스를 app-network 에 속하게 하고 mysql 을 이름으로 접근한다.
docker run -d -p 8080:80 --network=app-network -e WORDPRESS_DB_HOST=mysql -e WORDPRESS_DB_NAME=wp -e WORDPRESS_DB_USER=wp -e WORDPRESS_DB_PASSWORD=wp wordpress