기본 환경 : Windows 10 Pro
설치 Docker : Docker for Windows (not with VirtualBox)
이 글의 시작에 앞서 이곳저곳 두리번 거리면서 Docker를 만지작 거리고 있는데, 내가 느낀점은 생각보다 리뷰글 중에 위의 환경에서 해보고 있는 사람이 별로 없다는 것이다.(아니, 실제 거의 없다)
위 환경으로 설치한 분들은 보통 이 가상환경을 이용해서 쉽게 이미지를 다운받아 그 이미지를 쉽게 실행하여 그 환경을 쓰려는 분들이 대다수이지, Docker 자체에는 크게 관심이 있는 사람은 별로 없어보인다.
그래서인지 대다수의 글들에서 보이는 이미지 캡처는 Linux를 기반으로 하고 있었다ㅠ
그래도 굴하지 않고 이 환경에서 꿋꿋하게 한번 살아보려고 한다. 파이팅..!
나의 설치 포스트를 보고 따라온 분들이라면 Kitematic을 실행하는 것까지 확인이 되었을 것이다.
나도 이걸로 뭔가를 해보려했지만, 사실 별로 해볼건 없었다.
그냥 띄워놓고..
Powershell로 Docker에 스크립트를 넣다보면 생기는 컨테이너의 라이프사이클 정도를 RealTime으로 볼 수 있는 정도로 만족하는 정도..?
무튼, 우리는 Kitematic창에서 좌측하단에서 ‘Docker CLI’를 누르거나 그냥 ‘Power Shell’을 실행한다.
그게 위에 적힌 환경에서 쓸 CLI환경이다..
우선 가장 보편적으로 해볼 수 있는 run 명령어를 쳐봤다.
위와 같은 명령어를 해석하자면 아래와 같은 흐름이다.
1. 컨테이너를 실행하자
– 어떤 이미지로? ubuntu 최신버전 이미지로
– 그런데 Docker Hub에 있는 ubuntu랑 비교해보니 Local에 ubuntu최신버전이 없다.
—> 그럼 최신버전을 다운받자 (그리고 다운을 받는다.(Pull))
– 다운로드가 다 되어서 이제 최신버전이 있다.
– 그럼 ubuntu 최신버전 이미지로 실행을 하자.
2. 그 후에는?
– echo(리눅스명령어) ‘Hello World’ 출력
그래서 Hello world가 출력이 된 것이다. 저러면 저 컨테이너는 자기가 할 일을 다 끝마쳤기 때문에 다시 죽어버린다.(삭제가 되진 않는다.)
그리고 나서 같은 명령어를 다시 쳐보니 줄줄이 로깅메시지가 안나오고 바로 Hello world가 출력이 되었다.
이 것이 Docker의 핵심인데, Docker는 VM을 사용하는 가상화와 다르게 경량화 되어있는 기술이기 때문에 Base가 되는 이미지가 있으면 차이가 있는 부분에 대해서만 로드하여 바로 명령을 실행해준다.
보통 Local에 저장된 이미지를 ‘Local Cache’라고 부른다고 한다.