Docker

Docker - Windows에서 Docker 설치하기(Docker Toolbox)

Superkill 2016. 12. 22. 15:31
반응형

Docker for Windows는 도커 메인 페이지 또는 아래 링크에서 받을 수 있다

https://docs.docker.com/docker-for-windows/


하지만 Docker for Windows는 64비트 윈도우 10 Pro, Enterprise, Education[1511 November update, Build 10586 이후] 에서만 돌아간다. (16/12/22 글작성 기준)

- HyperV를 이용할 수 있는지 여부에 따라 사용할 수 있나 보다(Hyper-V는 뭘까?)[각주:1]


아무튼

내가 사용하는 OS는 Home edition이라 Docker for Windows를 쓸 수 없었기 때문에

Legacy desktop solution인 Docker Toolbox를 깔기로 했다.


그런데 Docker Engine Daemon은 리눅스 커널에서 돌아가도록 만들어 졌기 때문에 Windows에서는 natively하게 Docker Engine을 쓸 수 없다. 그래서 Docker Machine 명령어를 통해 작은 리눅스 VM을 띄운 다음 Docker Engine을 호스팅 시켜주고 Docker Engine을 사용해야한다. 

(설치를 포기했던 Docker for Windows 그리고 Docker for Mac은 각각 ms의 Hyper-V 가상화 SW, 도커의 오픈소스인 Hyperkit을 이용해서 VirtualBox없이 Native하게 Docker를 실행 시킬 수 있다. )


그 전에 Docker를 설치하기 전에 알아야 할 것이 있다고 해서 살펴보았다.

https://docs.docker.com/docker-for-windows/#/what-to-know-before-you-install


-Docker for Windows를 실행하기 위해서는 Microsoft Hyper-V가 필요하고

Hyper-V가 활성화 되면 VirtualBox는 더 이상 작동하지 않을 것이지만 VirtualBox VM image는 그대로 있을 것이다. Docker-Toolbox를 설치할때 docker-machine과 함께 설치했던 VirtualBox VM 또한 더 이상 실행되지 않을 것이다. VM들은 Docker for Windows와 함께 동작하지 않는다. 하지만 docker-machine을 이용해서 원격 VM은 관리할 수 있다.


- Docker for Windows는 64비트 윈도우 10 Pro, Enterprise, Education[1511 November update, Build 10586 Build or Later] 에서만 돌아간다. 나중에 Windows 10의 다른 버전들도 지원할 것이다.


- Docker for Windows에서 만들어진 Container들과 image들은 설치된 컴퓨터의 모든 사용자계정들 간에서 공유된다. 윈도우 계정들은 container들을 빌드하고 실행할 때 동일한 VM을 쓰기 때문에 이런 일이 발생한다.. (이 부분은 이후에 Docker에서 user content를 분리 시킴으로써 개선하는 방향으로 업데이트 할 예정이라고 한다.)


- Hyper-V 패키지는 Docker for Windows가 작동하기 위해서 반드시 사용가능 한 상태이어야 한다. 필요하다면 Docker for Windows 설치관리자가 사용가능 상태로 만들어 줄 것이다. 만약 당신의 시스템이 이 요구사항을 만족하지 못한다면 Hyper-V 대신 Oracle Virtual Box를 이용하는 Docker ToolBox를 사용해라.


- Virtualization은 반드시 사용가능 상태이어야 한다.(Virtualization은 Hyper-V와 다른 것)


- Nested virtualization[각주:2]을 사용하면 작동할 수도 있지만 보증은 할 수 없다.(공식적으로 지원되지는 않음)  


- Docker for Windows를 설치하면 Docker Engine, Docker CLI Client, Docker Compose 그리고 Docker Machine이 제공된다.


어차피 Docker for Windows가 아닌 Docker ToolBox를 사용하려고 했기 때문에 위에서 블록 처진 부분만 해당될 것 같았고 Docker ToolBox 설치페이지가 있어서 그 부분을 참고했다.


https://docs.docker.com/toolbox/toolbox_install_windows/





Docker Toolbox에는 다음과 같은 Docker Tool들이 포함되어 있다고 한다.

- Docker Engine에서 Image와 Container들을 생성하기 위한 

Docker CLI(Command Line Interface) 

- 윈도우 터미널에서 Docker Engine 명령어를 실행할 수 있게 해주는 

Docker Machine

- docker-compose 명령어를 실행하는데 필요한 

Docker Compose

- Docker GUI, Kitematic

- Docker QuickStart shell 

- Oracle VM VirturalBox


이제 본격적으로 시작!


step 1) 64-bit 운영체제인지 확인하고 가상화가 enable 되어있는지 확인.


윈도우 10은 작업 관리자-성능 탭에서 CPU항목을 클릭하면 확인할 수 있다.(상단 링크의 그림 참고)

만약 가상화가 활성화 되어있지 않다면 활성화 하는 법을 따로 찾아보아야 할 것 같은데 보통 다 활성화 되어있는 것 같다.

윈도우 7은 아래 링크에서 툴을 받은 다음 실행 시키면 

https://www.microsoft.com/en-us/download/details.aspx?id=592

Windows Virtual PC를 실행하는데 문제 없는 환경이라고 떴다...


Windows Virtual PC를 설치하기 위해 그 아래의 Learn more~~링크로 들어갔더니 

https://www.microsoft.com/en-us/download/details.aspx?id=8002 이곳에서 설치 파일을 받을 수 있었는데 다운로드 버튼을 누르니 파일이 여러개... 

WindowsXPMode_en-us.exe / WindowsXPMode_N_en-us.exe 

일단 두개 다 받았다.. 각각 500메가에 가까운 용량인데 꽤 큰 편..? 설치 직전까지 가봤는데 동일해 보여서 그냥 첫번째 것만 설치했다. 

어찌 됫든 일단 설치 완료

(추가)  _N_ 버전은 유럽쪽 표준?에 맞춘 대안버전인거 같은데 우리나라는 첫 번째 것을 쓰면 될 것 같다



step 2) Docker Toolbox를 설치해보자

Docker Toolbox는 여러 Docker tool들을 포함하고 있다.

- 이미지와 컨테이너를 생성하기 위해 Docker Engine 위에서 동작 시키기 위한 Docker CLI Client 

https://www.docker.com/products/docker-toolbox 에서 윈도 버전을 다운받고 설치!


(혹시 기존에 VirtualBox가 설치되었으면 체크 해제해서 설치하지 않도록 한다.

또한 설치 하기 전 VirtualBox가 실행되고 있다면 반드시 종료하고 설치하도록 한다.)


일단 1.12.5 버전으로 받아 보았다.

설치 파일을 실행하고 next next...하다보니까 어느새 설치가 끝나버렸다.

설치를 하면 다음 4가지 소프트웨어가 설치된다.


- Docker Client for Windows

- Docker Toolbox management tool and ISO

- Oracle VM VirtualBox

- Git MSYS-git UNIX tools 


이것들은 나중에 알아보고 일단 제대로 설치가 되었는지 확인해보자


step 3) installation Verify 


설치를 하고 나면 바탕화면에 

Docker Quickstart Terminal / Kitematic / Oracle VM VirtualBox 

3개의 아이콘이 새로 생겼을 것이다.


먼저 Docker Quickstart Terminal을 실행해보자 처음 실행하는데 꽤 오래 걸리므로

잘못된게 아니니 안심하고 기다리면 된다. 

(만약 bash.exe를 찾을 수 없다고 에러가 뜨면 ->링크)

권한 요청을 하면 승인해 주자. Waiting for ip... 메세지가 뜨면서 은근 오래 걸리던데 실패하면 권한 요청이 다시 올텐데 다시 승인 해주자.

설치가 끝나면 $ 프롬프트 터미널이 뜰 것이다. 설치 완료!

docker run hello-world 명령어를 입력해 보고 작동하는지 확인 해 보자


다음으로 Kitematic을 실행했더니 에러가 났다..

 connect ENOENT //./pipe/docker_engine

현재 Docker for Windws를 지원하지 않는 윈도우 버전에서 Docker toolbox로 Docker를 사용하는 것은 native로 돌아가는게 아니기 때문에 Kitematic이 연결할 도커를 알아서 찾지 못한 것 같다. 

에러 메시지 밑의 USE VIRTUALBOX를 클릭했더니 kitematic이 정상적으로 실행된다. VirtualBox에서 만든 리눅스 VM 위에서 돌아가고 있는 docker와 연결시키는 듯.


  1. ms에서 만든 가상화 SW이며 Docker를 Windows 환경에서 VirtualBox 없이 Native하게 돌아가도록 해준다. [본문으로]
  2. Hyper-V 호스트 자체를 가상화 한다고 설명한다. 예를들어 Docker for Windows를 VMWare나 병렬적인 인스턴스에서 돌리는 것을 말한다고 나와있는데 아직 이해는 잘 안감 [본문으로]