본문 바로가기
Cloud Platform/GCP

Starting with Docker in GCP (2) - 실행(execution)

by 댓츠굿 2019. 5. 8.


 

이전 글인 Starting with Docker in GCP (1) - 빌드(Build) 편에 이어 Docker 실행편을 이어나가도록 하겠습니다.

 

 

 

1. 다음과 같이 docker images 명령어를 치면 TAG가 0.1인 myapp을 볼 수 있습니다.

 

 

 

2. 이제 이 빌드된 myapp 이미지를 기반으로 하는 컨테이너를 실행합니다.

 

docker run -p 8020:80 --name my-app -d myapp:0.1

 

 그럼 아래와 같은 결과를 보실 수 있습니다.

 

  run 명령어는 이미지로 컨테이너를 생성하는 명령어 입니다.

  docker run <옵션> <이미지 이름, ID> <명령> <매개 변수>

 

  다음은 이 포스트에서 쓰일 run 의 옵션을 설명하겠습니다.

  -p는 Docker가 컨테이너 포트 80에 호스트 포트 8020을 매핑하도록 지시하는 옵션입니다.

  -p, --publish=[]: host에 연결된 컨테이너의 특정 포트를 외부에 노출합니다. 보통 웹 서버의 포트를 노출할 때 주로 사용합니다.

  -d, --detach=false: Detached 모드입니다. 보통 데몬 모드라고 부르며 컨테이너가 백그라운드로 실행됩니다.

 

  <IP address>:<host port>:<container port> 

  호스트에 네트워크 인터페이스가 여러 개이거나 IP 주소가 여러 개 일 때 사용합니다. ex) -p 192.168.0.10:8080:80

 

  --name 플래그는 컨테이너 이름을 지정합니다.

 

  참조) Docker run 명령어 문서 : 가장 빨리 만나는 Dockerhttps://docs.docker.com/engine/reference/run/

 

 

 

3. docker ps 명령어로 실행중인 컨테이너를 확인합니다. 빌드된 이미지인 myapp:0.1을 실행중인 컨테이너를 보실 수 있습니다.

 

 

 

4. docker logs [container_id] 명령어를 실행하면 로그를 볼 수 있습니다.

 

 

 

5. 이전 포스트인 빌드 단계에서 만들었던 app.js를 열어 "Hello World!"를 "Good morning!!"으로 바꾸어 보겠습니다.

 

app.js

 

 

 

6. 그런 다음, 새 이미지를 빌드하고 태그를 0.2로 지정합니다.

 

 docker build -t myapp:0.2 . 

 

 

 

7. 태그가 0.2인 새 이미지 버전으로 다른 컨테이너를 실행합니다. 이때 호스트 포트를 8080으로 매핑합니다. 8020은 이미 사용 중이므로 사용할 수 없습니다.

 

 docker run -p 8080:80

 

 

 

8. 다시 docker ps 명령어를 치면 빌드된 이미지 myapp:0.1, myapp:0.2를 실행중인 컨테이너 목록을 확인할 수 있습니다.

 

 

 

9. curl 명령어를 이용해 호스트 포트가 8080인 컨테이너를 테스트합니다. 수정했던 "Good morning!!"을 보실 수 있습니다.

 

 

 

10. 다시 호스트 포트가 8020인 컨테이너를 테스트 합니다. 처음에 작성했던 "Hello World!"를 보실 수 있습니다.

run 명령어의 -d 옵션을 이용해 Detached 모드로서, 컨테이너를 터미널 세션에 종속시키지 않고 백그라운드에서 실행시켰기 때문에 두 개의 컨테이너를 동시에 실행시킬 수 있었습니다.

 

반응형

'Cloud Platform > GCP' 카테고리의 다른 글

Starting with Docker in GCP (1) - 빌드(Build)  (0) 2019.05.06