inflearn logo
강의

講義

知識共有

ドッカーを書くときは必須!ドッカーコンポーズ

볼륨 질문 드립니다.

282

backboss

投稿した質問数 31

1

volumes:
  db_data: {}

services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql

위처럼 볼륨을 도커가 관리하게 하면 문제가 없지만

services:
  db:
    image: mysql:5.7
    volumes:
      - ./:/var/lib/mysql

지금처럼 특정위치를 지정 함면 mysql이 구동이 실패 됩니다.

이유가 있을까요?

특정 위치 말고 도커가 관리하는 볼륨을 쓰는게 더 좋은가요??

docker

回答 1

0

alankim

안녕하세요.

도커 컴포즈 실행시 mysql의 볼륨을 호스트 컴퓨터의 디렉터리로 지정했을 때 컨테이너가 제대로 실행되지 않는 현상을 겪고 계시네요. 도커 컴포즈에서 자주 접하는 오류이므로 꼭 이해하고 넘어가시면 좋겠어요.

 

'./'는 도커 컴포즈를 실행하는 위치입니다. './'에는 서비스와 관련된 다양한 파일들이 존재할 텐데요. mysql의 데이터가 저장될 볼륨을 이 위치로 마운트하면, `/var/lib/mysql`의 파일들이 시스템의 파일을 덮어쓰게 됩니다. (진짜로 덮어쓰면 문제가 되니까 mysql 구동 단계에서 다른 파일들이 있다는 걸 감지해서 작동을 멈춥니다.)

따라서 ./data 디렉터리를 만든 후 ./data:/var/lib/mysql 처럼 지정하시면 문제가 해결될 거예요.

 

다만 로컬 호스트의 디렉터리에 마운트를 하시면 다른 문제들(git 저장소에 안 들어가게 신경써야 한다거나 실수로 파일 하나를 삭제한다거나)이 발생할 수 있으니, 가급적 도커가 관리하는 볼륨을 사용하시기를 추천합니다.

혹시 다른 문제를 겪으신다면 언제든 올려주세요. :)

 

개인실습해설 프론트엔드, 백엔드 데이터베이스 방명록

0

92

2

db 란?

0

74

1

docker run -it -p 8080:80 --rm -v /home/nayuoh/docker-compose/:/usr/share/nginx/html/ nginx

0

101

1

{pwd}

0

84

1

${pwd}

0

82

1

docker 설치 후 첫 실행 시 docker.sock. 에러

0

926

2

도커 컴포즈 그대로 해서 docker-compose up -d 명령어 쳤는데, 프론트엔드랑 몽고디비는 up 상태가 되는데, 백엔드에서 몽고디비 커넥션이 안되네요

0

502

2

ghost 테스트 안됨

1

388

2

docker compose up 에러 질문드립니다~

1

1396

1

Volume 관련 질문 드립니다.

0

336

1

바로 멈춤 문제

0

360

1

실행시 바로 멈춤

1

361

1

강의자료 html에 있는 소스코드처럼 어떻게 작성하나요?

1

305

1

docker-compose.yml 파일 문법자료 문의 입니다

1

298

1

소스코드 복사해서 실습시 불편사항

1

276

1

depends_on 설정

1

338

1

docker run명령어는 언제 사용하나요?

1

337

1

docker-compose exec 질문 드립니다.

1

1148

1

volumes db_data 문의2

0

1038

1

구글링을 했는데 해결방안을 모르겠습니다.

1

233

1

안녕하세요!

1

198

1

강의 ppt

1

319

1

docker-compose 명령어 관련 질문입니다.

1

530

1

완강했습니다. 궁금한게있어서요!

1

209

1