[Docker] 0. docker-compose

Jae Gyeong Lee·2024년 6월 17일

docker-compose

  • 각 컨테이너를 run할 때마다 하나하나 입력하는 것이 번거롭다 → docker-compose를 통해 편하게 하자
  • 여러 container 명령어 파일(옵션과 환경을 정의한)을 읽어와 docker-compose 내 정의한 container들을 순차적으로 불러와 생성
$docker-compose version #설치 확인(버전 확인)

절차: (1)빈 디렉토리 생성 (2)docker-compose.yml 파일 생성 (3)yml 파일 안에 container 명령어 작성

(1)빈 디렉토리 생성

$mkdir test # test라는 디렉토리 생성

(2)docker-compose.yml 파일 생성

$cd test # 만든 디렉토리로 이동
$touch docker-compose.yml # 파일 생성

(3)yml 파일 안에 container 명령어 작성

$ vi docker-compose.yml # vi 편집기로 파일 접근
#예시 코드

version: '2'
services:
  db:
    image: mariadb:10.9
    volumes:
      - ./mysql:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: wordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
  wordpress:
    image: wordpress:latest
    volumes:
      - ./wp:/var/www/html
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress

위 yml 파일 내 코드는 아래 2개 이미지의 run 명령어를 합친거

  1. db
docker run -d -p 3306:3306 \
 -e MYSQL_ALLOW_EMPTY_PASSWORD=true \
 --network=app-network \
 --name mysql \
 -v /Users/subicura/Workspace/github.com/subicura/docker-guide/ch02/mysql:/var/lib/mysql \
 mariadb:10.9
  1. wordpress
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
$docker-compose up # docker-compose 실행
$docker-compose down # docker-compose 종료

tip:
(1) notepad를 활용해 docker-compose.yml 파일에 넣을 코드 작성
(2) 서버 pc(linux) docker-compose.yml 파일에 코드 붙여 넣기
ㄴ vi에서 :set paste 옵션을 먼저 주고, 그 다음에 작성한 코드를 붙여 넣어야 복사한 내용이 깔끔하게 추가됨.
ㄴ 원상복구는 :set nopaste

profile
안녕하세요 반갑습니다. 공부한 내용들을 기록하고 있습니다.

0개의 댓글