[목차]
기본적으로 docker 는 docker engine 과 docker client 로 구성된다.
docker engine 은 linux 환경에서 구동되도록 만들어졌기 때문에,
내 노트북과 같은 윈도우 환경에서는 사용할 수 없다.
이를 위해 공식적으로 제공되는 것이 Docker Toolbox
또는 Docker Desktop on Windows 이고,
후자가 가상화의 측면에서 권장되는 사용 방식이나, 나는 일단 익숙한 방법이었던 Docker Toolbox 방식을 선택했다(이하 툴박스).
툴박스 방식은 오라클사의 VirtualBox 를 설치하여
그 안에 리눅스 가상머신을 만들어 docker engine 을 구동시키는 방법이다.
이는 일단 윈도우 호스트에서 가상머신으로, 가상머신에서 도커 엔진으로 포트 포워딩을 하는 다소 이상한? 구조이다.
먼저 툴박스 링크 로 가서
Docker Desktop 을 권장한다는 소리들은 가볍게 무시해주고 굳이 툴박스를 다운받는다.
설치 패키지에는 도커엔진, 클라이언트와 함께 VirtualBox 까지 포함되어 있으므로 설치하란대로 하면 된다.
Docker compose, git(없다면) 까지 체크하여 모두 설치하자.
이제 바탕화면에 나타난 Docker Quickstart Terminal 를 클릭하여 엔진에 접속하기 위한 클라이언트를 실행한다. 그런데 절대 한번에 될 리가 없지. 높은 확률로 발생할 수 있는 몇 가지 이슈를 살펴보자.
docker engine 은 별도의 가상머신에서 돌고 있다.
그러므로 클라이언트를 실행중인 윈도우 호스트에서 는 TCP 통신을 통해 가상머신에 접근해야 한다.
따라서 방화벽이 막혀 있다면 접속이 불가하다.
ipconfig(ifconfig) 로 VirtualBox IP 대역을 찾아서 로컬호스트 영역의 방화벽(인바운드) 뚫어주자.자, 이제 설치가 완료되었으니 docker -v docker images docker ps -a 등으로 확인해보자.
윈도우 호스트에서 별도의 가상머신을 또 돌린다는 사실도 왠지모르게 걸리는데, 리눅스가 아닌 윈도우이기 때문에 어쩔수 없이 발생하는 여러 이슈들은 참으로 불편하다.
BUILD 하거나 컨테이너를 RUN 하다보면 심심치 않게 디스크 볼륨 바인딩이 이루어진다.
하지만 도커 엔진은 중간에 가상머신을 또 매개하고 있어서 윈도우 호스트의 디스크 경로를 제대로 캐치하지 못한다.
툴박스의 실행 환경설정을 수정하는 방식이 있기는 하지만, 배보다 배꼽이 커지는 느낌이 들면서 그렇게까지 하고 싶지는 않아진다.이상 윈도우 호스트에서 사용하되는 도커가 불편한 이유를 나열해 봤다. 물론 찾으면 더 나올 것이다.
나에겐 툴박스와 함께 설치된 VirtualBox 가 있었다.
어차피 특정 호스트 안에서만 도커 이미지를 BUILD 할것이기 때문에 아예 리눅스 가상머신을 만들어 거기서만 도커를 쓰면 된다.
이때 쓸라고 나는 내 노트북의 메모리를 24기가나 되도록 맞췄나보다(진짜?).
apt --help) 이 커맨드는 apt-get, apt-cache 등의 툴의 기능을 제공하며,
옵션 사용 시 유저와 기본적인 상호작용에 있어서 더 적합하다고 설명한다.sudo apt update) 이후 기본 툴들을 설치한다(sudo apt install vim curl make git 등등).sudo apt remove docker docker.io docker-engine).
우분투에 docker 설치는 공식 링크 를 따라서 한다.
이제 기본 명령어로 잘 설치되었는지 체크해보자.
docker -v docker images docker ps -a

먼저 docker 사용만을 위한 SUDO 계정을 만들어 보자
root 로 접속 후 도커유저 생성

명령 usermod 에서 -aG 옵션은 사용자를 보조 그룹에 추가하는 옵션이다.
새로 추가한 docker-user 유저는 sudo 권한을 갖는 보조그룹에 추가되었다.
docker-user 로 접속 후 작업 디렉토리 만들기

이후부터 /home/docker-user/workdir/base 디렉토리에
ubuntu 18.04 LTS 베이스 이미지를 만들고 실습을 진행할 것이다.