도커에서 컨테이너를 생성하면 기본적으로 브리지 네트워크로 생성됩니다.
여기서 착각할 수 있는 부분은, a.yml과 b.yml 각각에서 생성한 컨테이너들이 같은 브리지 네트워크로 잡힐 것이라는 생각입니다.
물론 저만 그랬을 수도 있습니다. 그래서 많은 시간을 허비하게 되었습니다.
이런 경우에는 별도의 네트워크를 생성하고, 각 파일에서 외부 네트워크 사용을 활성화해야 합니다.
예제를 통해 살펴보도록 하겠습니다.
네트워크 부분을 유심히 살펴보세요.
1. 네트워크 생성
docker network create my_network
2. 디비에서 네트워크 설정
version: '3.8'
services:
maria:
image: mariadb:10.5.8
container_name: maria
ports:
- "3306:3306"
volumes:
- "/Volumes/data/mysql:/var/lib/mysql:Z"
- /Volumes/script/maria/mariadb.conf:/etc/mysql/mariadb.conf
environment:
- MARIADB_ROOT_PASSWORD=my_password
- TZ=Asia/Seoul
- transaction-isolation=READ-UNCOMMITTED
restart: always
networks:
- my_network
networks:
my_network:
external: true
3. 워드프레스에서 네트워크 설정
version: '3.8'
services:
blog:
image: wordpress:latest
container_name: blog
volumes:
- /Volumes/wordpress/app_data:/var/www/html
ports:
- "10008:80"
restart: always
environment:
WORDPRESS_DB_HOST: maria
WORDPRESS_DB_PORT: 3306
WORDPRESS_DB_NAME: blog
WORDPRESS_DB_USER: ${DB_USER}
WORDPRESS_DB_PASSWORD: ${DB_PASS}
networks:
- my_network
networks:
my_network:
external: true