본문 바로가기
DevOps

Docker 허브에 공유된 이미지 사용하기

by 일상코더 2023. 2. 22.

실습 예제

        애플리케이션(web-ping)

        -> 웹 사이트가 노출되는지 확인하는 기능을 함

        -> 컨테이너에서 실행돼 지정된 URL에 HTTP 요청을 3초마다 보내는 동작을 컨테이너가 종료될 때가지 반복한다.

 

 

1. web-ping 애플리케이션의 컨테이너 이미지를 내려받기

     

       -  $docker image pull diamol/ch03-web-ping

             -> 도커가 가장 먼저 이미지를 찾기 위해 접근하는 저장소인 도커 허브에 저장

             -> 이미지를 제공하는 저장소를 레지스트리(registry)라고 함

             -> 도커 허브는 무료로 제공되는 공개 레지스트리

 

2. 내려받은 이미지로 컨테이너를 실행하고 실행된 애플리케이션의 기능을 확인

 

        - $docker container run -d --name web-ping diamol/ch03-web-ping

               -> -d 플래그는 --detach의 축약형 (백그라운드에서 동작)

               -> --name 컨테이너에 원하는 이름을 붙히고 이 이름으로 컨테이너를 지칭(web-ping)

 

3. 도커를 통해 수집된 애플리케이션의 로그를 살펴보기

 

         - $docker container logs web-ping

 

 

4. 실행 중인 컨테이너를 삭제하고 환경 변수 TARGET의 값을 다른 값으로 지정한 새로운 컨테이너를 실행

 

         - $docker container run --env TARGET=google.com diamol/ch03-web-ping

 

          환경변수는 운영체제에서 제공하는 키-값 쌍이다. 윈도우나 리눅스나 같은 방식으로 동작하며, 아주 적은 양의 데이터를 저장하는 데 유용하다. 도커 컨테이너도 별도의 환경 변수를 가질 수 있다. 그러나 이 환경 변수는 호스트 운영체제의 것을 가져오는게 아니라 컨테이너의 호스트명이나 IP 주소처럼 도커가 부여해준다.

 

 

5. 3번과 4번의 다른점

 

          - 이 컨테이너는 --detach 플래그(백그라운드 상에서 구동)를 적용하지 않았으므로 애플리케이션의 출력 내용이 콘솔에 나타난다.

          - ctrl + c를 눌러 애플리케이션을 종료할 때까지 출력이 계속 된다.

          -  HTTP 요청을 보내는 대상이 blog.sixeyed.com 에서 google.com 으로 변경됐다는 것이다.

              -> 도커이미지는 설정값의 기본값을 포함해 패키징되지만, 컨테이너를 실행할 때 이 설정값을 바꿀 수 있어야한다.

              -> 환경 변수를 이용하면 이를 간단하게 구현할 수 있다.

              -> web-ping 애플리케이션의 코드는 TARGET이라는 이름의 환경 변수 값을 찾는다.

              -> 이미지에는 이 환경 변수의 값이 blog.sixeyed.com으로 설정돼 있으나 docker container run 명령에서 

                    --env 플래그를 사용해 다른값을 지정 할 수 있다.

 

'DevOps' 카테고리의 다른 글

Dockerfile 작성하기  (0) 2023.02.23
Docker 기본 명령어  (0) 2023.02.21
Docker가 컨테이너를 실행하는 원리  (0) 2023.02.20
Docker 컨테이너와 이미지 이해하기  (0) 2023.02.19

댓글