docker 질문 좀 드려봅니다.

docker 질문 좀 드려봅니다.

QA

docker 질문 좀 드려봅니다.

본문

docker 를 처음 써보려고 합니다.
검색해보면 웹앱과 mysql 을 둘다 도커이미지로 따로 만들고 웹앱 컨테이너를 실행시킬때 mysql 도커의 이름으로 link 해서 쓰던데요...
제 경우엔 mysql 이 이미 설치되어 사용중인 상태에서 웹앱 도커에서 기존의 mysql 과 연결을 하고 싶습니다.
어떻게 해야 하는지 잘 모르겠네요.

즉, 도커컨테이너에서 리얼머신의 mysql 하고 연동하는 방법을 알고싶습니다.
 

이 질문에 댓글 쓰기 :

답변 6

어려운 것을 하시네요.  

 

https://docs.docker.com/config/containers/container-networking/#published-ports

 

여기에 보면 된다고 나오는데.  192.168.1.100을 쓰면 안되고..  호스트의 아이피로 쓰신 것은 맞죠..

 

제일 편한것은 주어진대로 쓰시는 것이 좋습니다.  굳이 꼭 그렇게 가야될 이유가 있다면 모르겠지만..

아하... 되긴 되는건가 보군요.  제가 뭘 잘못한 모양이네요.
어렵게 가려고 하는 이유는 ㅜㅜ
디비를 통합으로 관리하려고 하다보니 컨테이너마다 따로 있는게 부담스러워서요.

제일 쉬운건... DB 전체를 백업 받아서 도커의 mysql에 심는 것입니다.

 

mysql의 volume을 host의 저장공간으로 지정할 수 있으므로 컨테이너를 지웠다가 다시 깔아도 그대로 있습니다.

 

그리고 docker-compose를 활용하면 굳이 link 시키지 않아도 하나의 네트워크로 인식되어 컨테이너의 이름만 넣어도 접속이 됩니다.

 

https://github.com/woosungchoi/docker-gnuboard/blob/master/docker-compose.production.yml

 

대략 위와 같이 셋팅하면 서로 쉽게 연결됩니다.

docker 를 쉽게 생각하면 각각의 실행 파일 이미지가 하나의 리눅스 컴퓨터라고 보시면 됩니다.

 

이것들을 Docker 네트워킹을 통해서 연결하고 있습니다. (172로 시작하는..)

 

해 보질 않았지만,  호스트 아이피가 192.168.1.100이라고 하면,  여기에 mysql이 돌아 갑니다.

 

즉 192.168.1.100:3306으로..   이것을 내부 도커에  알려 주면 될 것 같습니다.

 

-p 192.168.1.100:3306:3306 으로 하고 도커 내부에서 localhost:3306으로 접속해 보세요.

 

시큐리티가 어떨지 모르겠습니다.

 

그리고 laradock을 사용하시면 데이타 베이스도 호스트에 저장이되고,  모든 데이타가 호스트쪽에 있으니 편하게 사용가능합니다. (참조하세요.)

웹앱 자체가 5000번 포트를 사용하고 있습니다.
포트를 두번 쓰니까 안된다고 하는데 어떻게 하는건지요? ㅜㅜ

docker run -i -t --name flask_app_01 -p 5000:5000 -p 3306:3306 flask_app

이렇게 했습니다.

192.168.1.100:3306:3306
이렇게는 안되는거 같아요

라라곤 쓰세요.  신세계가 됩니다.

python flask도  가능합니다.  workspace에 접속해서 python 프로젝트 가능합니다.

 

개발환경을 SSD에 넣어서  항상 가지고 다닐수도 있습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 44
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT