작성
·
245
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: {}
더 궁금한 점이 있다면 언제든 질문 올려주세요.
고맙습니다.