인프런 커뮤니티 질문&답변

backboss님의 프로필 이미지
backboss

작성한 질문수

도커 쓸 땐 필수! 도커 컴포즈

바로 멈춤 문제

작성

·

239

0

version: '3'

services:
  db:
    image: mysql:5.7
    networks:
      - local_network
    volumes:
      - D:\data:/var/lib/mysql
             
networks:
  local_network:
    driver: bridge    

volumes:
  db_data: {}    

docker-compose up -d

를 실행하면 바로

docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

afcf6c4c1b74 mysql:5.7 "docker-entrypoint.s…" About a minute ago Exited (1) About a minute ago p100_db_1

Exited (1) About 상태로 갑니다.

기대하는 것은 mysql 서버가 돌고 있는 것인데

실제로 바로 죽어 버리는 문제가 있는데 방법이 있을까요??

그리고 D:\data:/var/lib/mysql

볼륨이 있을 경우 mysql 구동이 실패 하는데 이유를 알수있을까요?

답변 1

0

너굴님의 프로필 이미지
너굴
지식공유자

안녕하세요.
볼륨 설정시 mysql 컨테이너가 제대로 실행되지 않는 문제가 궁금하셨군요. 문제를 이해하고 해결하려는 자세를 응원합니다.

오류 로그를 좀더 길게 보지 않아서 확신하기는 어렵지만 몇 가지를 제시해볼테니 시도해보세요.

볼륨 관련 문제를 해결하는 가장 쉬운 방법은 호스트 컴퓨터의 디렉터리 대신 도커의 볼륨을 사용하는 겁니다. 이미 docker-compose.yml 파일 내에 db_data라는 볼륨을 선언해두셨기 때문에(가장 아래의 두 줄), 이 볼륨을 그대로 사용하는 것이지요.

version: '3'

services:
  db:
    image: mysql:5.7
    networks:
      - local_network
    volumes:
      - db_data:/var/lib/mysql  # 여기를 수정했어요
             
networks:
  local_network:
    driver: bridge    

volumes:
  db_data: {}  

 

두 번째로, 올려주신 docker-compose.yml에서 빠진 부분이 하나 있어요. mysql 컨테이너는 구동시 다음 환경변수 중 하나를 반드시 설정해야만 합니다.

  • MYSQL_ROOT_PASSWORD

  • MYSQL_ALLOW_EMPTY_PASSWORD

  • MYSQL_RANDOM_ROOT_PASSWORD

 

따라서 다음과 같이 environment를 추가해주면 작동할 것 같습니다.

version: '3'

services:
  db:
    image: mysql:5.7
    networks:
      - local_network
    volumes:
      - E:\dadta:/var/lib/mysql
    environment:                         # 여기랑
      - MYSQL_ROOT_PASSWORD=test         # 여기를 추가했어요

networks:
  local_network:
    driver: bridge    

volumes:
  db_data: {}

 

더 궁금한 점이 있다면 언제든 질문 올려주세요.

고맙습니다.

backboss님의 프로필 이미지
backboss

작성한 질문수

질문하기