docker-compose 파일은 시스템 구축과 관련된 명령어를 하나의 텍스트 파일(정의 파일)에 기재해 명령어 한번에 시스템 전체를 실행하고 종료와 폐기까지 한번에 하도록 도와주는 도구

도커 컴포즈 파일은 컴포즈 파일이 사용할 한 폴더에 단 ‘하나’만 있어야 한다. 도커 컴포즈 파일은 docker-compose.yml이라는 이름으로만 파일을 생성할 수 있기 때문이다.

docker-compose 파일을 작성하는 방법

docker-compose.yml

version: "3" services:
  services:
    컨테이너_이름1:
      image: 이미지_이름
      networks:
        - 네트워크_이름
      ports:
       -포트_설정
    ...
  컨테이너_이름2:
    image: 이미지_이름
    ...
networks:
 연동할_컨테이너들이_속할_네트워크의_이름
volumes:
  볼륨_이름1:
  볼륨_이름2:

MySQL 컨테이너(mysql000vol11) 정의

도커 컴포즈에 포함될 MySQL의

항목항목 이름
MySQL 이미지 이름image:mysql:5.7
사용할 네트워크networks:wordpress000net1
사용할 볼륨volumesmysql000vol11
마운트 위치/var/lib/mysql
재시작 설정restart:always
MySQL 설정environment
Mysql 루트 비밀번호MYSQL_ROOT_PASSWORDmyrootpass
MYSQL 데이터베이스MYSQL_DATABASEwordpress000db
MYSQL 사용자MYSQL_USERwordpress000kun
Mysql 비밀번호MYSQL_PASSWORDwkunpass

워드프레스 컨테이너(wordpress000ex12) 정의

항목항목 이름
의존관계depends_on:mysql000ex11
워드프레스 이미지 이름images:wordpress
사용할 네트워크networks:wordpress000net1
사용할 볼륨volumes:wordpress000vol12
마운트 위치/var/www/html
포트 번호 설정port:8085:80
재시작 설정restart:always
DB 관련 정보environment:
Mysql 컨테이너 이름WORDPRESS_DB_HOSTmysql000ex11
MYSQL 데이터베이스WORDPRESS_DB_NAMEwordpress000db
MYSQL 사용자WORDPRESS_DB_USERwordpress000kun
Mysql 비밀번호WORDPRESS_DB_PASSWORDwkunpass

docker-compose.yml 파일 작성하기

1. 버전에 이어 필수 주 항목(services, networks, volumes)을 작성

version: "3"
services:
networks:
volumes:

2. MySQL 컨테이너 작성

(파일을 작성할 때 들여쓰기에 유의할 것)

version: "3"
services:
  mysql000ex11:
  wordpress000ex12:
networks:
  wordpress000net1
volumes:
  mysql000vol11:
  wordpress000vol12:

3. 워드프레스 컨테이너 정의 작성

  ...(중략)...
  wordpress000ex12:
    depends_on:
      - mysql000ex11
    image: wordpress
    networks:
      - wordpress000net1
    volumes:
      - wordpress000vol12:/var/www/html
    ports:
      - 8085:80
    restart: always
    environment:
      WORDPRESS_DB_HOST: mysql000ex11
      WORDPRESS_DB_NAME: wordpress000db
      WORDPRESS_DB_USER: wordpress000kun
      WORDPRESS_DB_PASSWORD: wkunpass

4. 도커 컴포즈 파일 최종 내용

version: "3"
services:
  mysql000ex11:
    image: mysql:5.7
    networks:
      - wordpress000net1
    volumes:
      - mysql000vol11:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: myrootpass
      MYSQL_DATABASE: wordpress000db
      MYSQL_USER: wordpress000kun
      MYSQL_PASSWORD: wkunpass
  wordpress000ex12:
    depends_on:
      - mysql000ex11
    image: wordpress
    networks:
      - wordpress000net1
    volumes:
      - wordpress000vol12:/var/www/html
    ports:
      - 8085:80
    restart: always
    environment:
      WORDPRESS_DB_HOST: mysql000ex11
      WORDPRESS_DB_NAME: wordpress000db
      WORDPRESS_DB_USER: wordpress000kun
      WORDPRESS_DB_PASSWORD: wkunpass
networks:
  wordpress000net1:
volumes:
  mysql000vol11:
  wordpress000vol12:
docker-compose로 워드프레스 구축 완료

Reference

https://life-coding.tistory.com/75

Leave a Reply

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다