Menu

[docker] 도커 컴포즈 실습

실습 목표

  • 워드프레스 및 MySQL 컨테이너 컴포즈 파일 작성

  • depends_on 항목을 추가해 의존 관계 설정

  • 주 항목 설정 > 이름 작성 > MySQL 컨테이너 정의 작성 > 워드프레스 컨테이너 정의 작성

실습 정보 정의

  • 생성할 네트워크, 볼륨, 컨테이너 정보

항목
네트워크 wordpress000net01
MySQL 볼륨 mysql000vol01
MySQL 컨테이너 mysql000ex01
워드프레스 볼륨 wordpress000vol01
워드프레스 컨테이너 wordpress000ex01
  • MySQL 컨테이너 정의 (mysql000ex01) - MySQL v5.7 용

항목 이름
MySQL 이미지 image: mysql:5.7
사용할 네트워크 networks: wordpress000net01
사용할 볼륨 volumes: mysql000vol01
마운트 위치 /var/lib/mysql
재시작 설정 restart: always
MySQL 설정 environment: * 이 붙은 항목
* MySQL 루트 패스워드 MYSQL_ROOT_PASSWORD myrootpass
* MySQL 데이터베이스 이름 MYSQL_DATABASE wordpress000db
* MySQL 사용자 이름 MYSQL_USER wordpress000user
* MySQL 패스워드 MYSQL_PASSWORD wordpress000pass
  • 워드프레스 컨테이너 정의 (wordpress000ex01)

항목 이름
의존관계 depends_on: mysql000ex01
워드프레스 이미지 image: wordpress
사용할 네트워크 networks: wordpress000net01
사용할 볼륨 volumes: wordpress000vol01
마운트 위치 /var/www/html
포트 번호 port: 8085:80
재시작 설정 restart: always
데이터베이스 관련 정보 environment: * 이 붙은 항목
* 데이터베이스 컨테이너 WORDPRESS_DB_HOST mysql000ex01
* 데이터베이스 이름 WORDPRESS_DB_NAME wordpress000db
* 데이터베이스 사용자 이름 WORDPRESS_DB_USER wordpress000user
* 데이터베이스 패스워드 WORDPRESS_DB_PASSWORD wordpress000pass

docker-compose.yaml 작성 파일

version: "3"
services:
  mysql000ex01:
    image: mysql:5.7
    networks:
      - wordpress000net01
    volumes:
      - mysql000vol01:/var/lib/mysql
    restart: always
    # MySQL 8.0 사용하기 위한 추가 정보
    #command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-autyhentication-plugin=mysql_native_password
    enviroment:
      MYSQL_ROOT_PASSWORD: myrootpass
      MYSQL_ROOT_DATABASE: wordpress000db
      MYSQL_USER: wordpress000user
      MYSQL_PASSWORD: wodpress000pass
    wordpress000ex01:
      depends_on:
        - mysql000ex01
      image: wordpress
      networks:
        - wordpress000net01
      volumes:
        - wordpress000vol01:/var/www/html
      ports:
        - 8085:80
      restart: always
      enviroment:
        WORDPRESS_DB_HOST: mysql000ex01
        WORDPRESS_DB_NAME: wordpress000db
        WORDPRESS_DB_USER: wordpress000user
        WORDPRESS_DB_PASSWORD: wordpress000pass
networks:
  wordpress000net01:
volumes:
  mysql000vol01:
  wordpress000vol01:

출처