SharedIT | 묻고 답하기(AMP)

docker mysql 이미지 만들 때 데이터들도 같이 묶어서 만들고 싶습니다

주 서버에서 Dockerfile 을 이용해 mysql 이미지를 만들고 hub 사이트에 올릴 때, 데이터베이스와 테이블의 정보도 함께 저장하여 이미지화 시키고 싶습니다. 방법이 있을까요?

3개의 답변이 있습니다.

한그루
  0 추천 | 3년 이상 전

제가 잘 은 모릅니다. 테스트로만 이미지 만들어보고 있는이미지 가져다 상용은 해봤는데. 

말씀 드리고 싶은 부분은 도커를 사용할때 데이터를 이미지 안에 놓는 것은 비추천입니다. 

이미지는 딱 운영 될 수 있는 상태만 (mysql 엔진만) 만들고 설정, log, data 는 외부 볼륨을 마운트 해서 사용하셔야 나중에 컨테이너 새로 올리거나 증설 할때 컨테이너로서의 역할을 제대로 할 수 있습니다.

공식 문서에 성능도 데이터 영역을 외부에 마운트 하는것이 더 좋다고 되어 있습니다.

데이터 영역 마운트 관련해서는 아래 링크 참고 해보세요. 

https://www.daleseo.com/docker-volumes-bind-mounts/


wansoo
  0 추천 | 3년 이상 전

docker commit 명령을 이용하면 컨테이너를 이미지로 만들수 있네요.

아래 링크 참조하면 도움 될거 같고요...


https://nicewoong.github.io/development/2018/03/06/docker-commit-container/

wansoo | 3년 이상 전

아래 링크가 좀 더 자세하게 설명되어 있는 것 같아 보이네요.

https://cofs.tistory.com/405

wansoo
  0 추천 | 3년 이상 전

이미지를 컨테이너로 올린 후에 데이터를 넣어서 업데이트 시키고 나서

모든 내용이 반영된 컨테이너를 다시 이미지로 빌더 시켜서 사용하면 되지 않을까요~

docker를 공부한지가 오래 되다 보니 가물가물하긴 하지만...

도커 이미지를 인스턴스화 시켜서 내용을 추가 변경한 내용들이 그대로 반영되어 있어야 업무에 사용할 수 있을 테고요.

모든 내용들이 반영되어 있는 인스턴스를 다시 이미지로 만들어서 이미지화 시켜 버리면 원하는 목적을 얻을 수 있겠죠~

낭만생선 | 3년 이상 전

WANSOO님 역시 대단하십니다.

혹시 DOCKER를 실 업무에 적용해 보신적도 있으신가요?


wansoo | 3년 이상 전

아직 실제 업무에는 적용하지 않고 있긴 한데...

일반 서비스 올리는거랑 큰 차이가 없다 보니...

업무 적용에 특별히 어려운 점은 없어 보이네요.

일반 사용자 입장에서는 컨테이너에서 작동하고 있는 건지, 가상 컴퓨터에서 작동하고 있는건지, 실제 물리 컴퓨터에서 작동하는 건지 알수 없을 것이고... 일반 사용자 관점에서는 차이점도 못 느끼게 되겠죠.

거의 대부분의 업무 서비스를 가상 컴퓨터로 구동해서 사용할 수 있는 것과 유사하게,

거의 대부분의 업무 서비스를 도커 컨테이너로 구동하는데 있어서 특별히 문제점이 있지는 않을거라 보여지네요.