Doker, Docker container에 소스 코드 배포하기
목표
나만의 Docker 이미지에 소스 코드를 배포하는 과정
1. my-slipp이라는 이름으로 컨테이너 실행
$ docker run -dit --name my-slipp -p 7000:8080 my-dev
- 외부에서 7000번 포트로 접속하면 컨테이너의 8080포트로 접속가능해진다.
run 옵션 설명
run : 독립된 container를 실행
- -d (Detached) : cotainer를 background에서 실행한다
- -i (interactive): 컨테이너와 상호적으로 주고받고 하겠다
- -t (pseudo-tty) : command line을 실행하기 위해 TTY를 할당한다
-
- -it
- shell과 같은 Interactive process에서는 tty를 할당하기 위해서 -it를 함께 사용해야 한다
- -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션
- -p : 컨테이너 안에서 서비스를 구동하고, 외부에서 그 서비스에 접근하려고 할때 사용
(-p)도커에서 Container 포트와 Host 포트의 개념
-p [연결할 호스트의 포트 번호]:[컨테이너의 포트 번호]
-p 80:5000
도커를 설치한 호스트의 80포트를 , 컨테이너의 5000번 포트에 연결하겠다.
외부에서 서버 80포트로 접근 -> 80포트는 컨테이너의 5000번 포트에 연결되어있음
따라서, 외부에서 80번 포트로 접속한다 = 컨테이너의 5000번 포트에 접속한다
※port 설정이 중요한이유
- MySQL은 무조건 3306으로 접근해야한다.
$ docker run -e MYSQL_ROOT_PASSWORD=1 -p 80:5000 --name test.mysql mysql:latest
- 으로 컨테이너를 사용한다면, 80번 포트로 접속하면 컨테이너의 5000번 포트로 연결될것이다.
- 컨테이너 설정 후, 80번 포트로 접속하면 mysql사용 불가능하다. 왜냐면 mysql은 3306포트를 사용하기 때문이다.
- 컨테이너 안에서 구동중인 mysql은 3306 컨테이너 포트를 사용하고 있는데, 호스트의 80포트는 3306과 연결되어 있지 않기 때문이다.
2. 컨테이너 접속
$ docker exec -it my-slipp /bin/bash
3. 폴더 생성 후, git clone
$ cd /usr/apps
$ git clone https://github.com/devham76/SLiPP-study.git
4. git branch확인 후, 배포할 branch checkout
- 배포할 브랜치가 없어서 영상과 기록은 여기까지 하겠다.
- 6:00 부터 영상 다시 보기.