Docker - Windows에서 Docker 설치하기(Docker Toolbox)
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와 연결시키는 듯.