IT/doker

[도커] 디비와 워드프레스 같은 네트워크로 묶어 주기

generator 2024. 8. 12. 17:54

도커에서 컨테이너를 생성하면 기본적으로 브리지 네트워크로 생성됩니다.

여기서 착각할 수 있는 부분은, 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