실습 예제
애플리케이션(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 |
댓글