Doker, Docker container에 소스 코드 배포하기

목표

나만의 Docker 이미지에 소스 코드를 배포하는 과정

1. my-slipp이라는 이름으로 컨테이너 실행

$ docker run -dit --name my-slipp -p 7000:8080 my-dev

docker port

  • 외부에서 7000번 포트로 접속하면 컨테이너의 8080포트로 접속가능해진다.

run 옵션 설명

run : 독립된 container를 실행

  1. -d (Detached) : cotainer를 background에서 실행한다
  2. -i (interactive): 컨테이너와 상호적으로 주고받고 하겠다
  3. -t (pseudo-tty) : command line을 실행하기 위해 TTY를 할당한다
  4. -it
    shell과 같은 Interactive process에서는 tty를 할당하기 위해서 -it를 함께 사용해야 한다
    -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션
  5. -p : 컨테이너 안에서 서비스를 구동하고, 외부에서 그 서비스에 접근하려고 할때 사용

(-p)도커에서 Container 포트와 Host 포트의 개념

docker port1

-p [연결할 호스트의 포트 번호]:[컨테이너의 포트 번호]
-p 80:5000
도커를 설치한 호스트의 80포트를 , 컨테이너의 5000번 포트에 연결하겠다.

외부에서 서버 80포트로 접근 -> 80포트는 컨테이너의 5000번 포트에 연결되어있음
따라서, 외부에서 80번 포트로 접속한다 = 컨테이너의 5000번 포트에 접속한다

※port 설정이 중요한이유 docker port 2

  • 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과 연결되어 있지 않기 때문이다.

docker port3

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 부터 영상 다시 보기.

참고

Tags:

Categories:

Updated: