그럼 조금 전의 명령으로 무엇을 한 것일까? docker container run 명령은 컨테이너로 애플리케이션을 실행하라는 도커 명령이다. 이 애플리케이션은 미리 도커로 실행하도록 패키징돼 누구나 내려받을 수 있도록 공유된 것이다. 이 컨테이너 패키지(도커에서는 이를 ‘이미지’라고 한다)의 이름은 diamol/ch02-hello-diamol(diamol은 이 책 영어 제목의 머리글자)이다. 그리고 지금 입력한 명령이 이미지를 이용해 컨테이너를 실행하는 도커 명령이다.
이미지를 이용해 컨테이너를 실행하려면 먼저 이미지가 있어야 한다. 조금 전의 명령을 처음 실행했던 시점에는 우리가 이미지를 갖고 있지 않았다. 그래서 출력 메시지 처음 부분에 unable to find image locally라는 메시지가 출력된 것이다. 그리고 이어서 도커가 이미지를 내려받는(도커에서 이미지를 내려받는 것을 pull이라고 한다) 과정을 볼 수 있다.
이미지를 내려받고 나면 내려받은 이미지를 사용해 컨테이너를 실행한다. 이미지에는 애플리케이션을 실행하는 데 필요한 모든 내용과 함께 애플리케이션을 실행하는 방법이 정의돼 있다. 이 이미지에 실린 애플리케이션은 간단한 스크립트로, Hello from Chapter 2!(2장 학습을 시작합니다!)라는 메시지와 함께 컨테이너가 실행 중인 환경을 출력한다.
• 컴퓨터의 이름, 예제에서는 e5943557213b에 해당한다.
• 운영체제 종류, 예제에서는 Linux 4.9.125-linuxkit x86_64에 해당한다.
• 네트워크 주소, 예제에서는 172.17.0.2다.
앞에서 ‘비슷한’ 내용이라 말한 이유는 실행하는 환경마다 출력 내용이 바뀔 수 있기 때문이다. 나의 경우 리눅스 운영체제를 사용하는 인텔 64비트 프로세서 컴퓨터에서 이 명령을 실행했다. 만약 윈도 환경에서 명령을 실행했다면 I'm running on:(동작 중인 운영체제) 항목이 다음과 같이 출력됐을 것이다.
--------------------- I'm running on: Microsoft Windows [Version 10.0.17763.557] ---------------------