강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của backboss
backboss

câu hỏi đã được viết

Cần thiết khi sử dụng Docker! Docker Soạn

바로 멈춤 문제

Viết

·

354

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 구동이 실패 하는데 이유를 알수있을까요?

docker

Câu trả lời 1

0

alankim님의 프로필 이미지
alankim
Người chia sẻ kiến thức

안녕하세요.
볼륨 설정시 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: {}

 

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

고맙습니다.

Hình ảnh hồ sơ của backboss
backboss

câu hỏi đã được viết

Đặt câu hỏi