Steps. 1. 도커(Docker) 그룹 만들기 2. Memory와 Swap 사용량 조정 3. UFW 포워딩 활성화 4. 부팅 후 도커 데몬(Docker Daemon) 자동 실행하기 |
도커(Docker)를 더 잘 동작하도록 우분투 옵션을 설정하는 방법에 대해서 설명한다. 필수적으로 설정해야 하는 부분이 아닌 선택 사항이다.
1. 도커(Docker) 그룹 만들기
도커 데몬(Docker Daemon)은 유닉스 소켓 대신에 TCP 포트에 바인딩한다. 기본적으로 유닉스 소켓은 root가 소유하고 있으며, root가 아닌 다른 사용자는 sudo를 사용해서 엑세스 할 수 있다. 그렇기 때문에 도커 데몬(Docker Daemon)은 항상 root로 실행되어야 한다.
sudo를 사용해서 도커(Docker) 명령어를 사용할 필요가 없도록 도커그룹을 만들고 사용자를 추가한다. 도커그룹을 만들고 사용자를 추가하면 도커 데몬(Docker Daemon)이 시작되면 도커그룹에의해 유닉스 소켓의 읽기/쓰기 권한을 얻을 수 있다. 도커그룹은 root 사용자와 동등한 권한을 가지게 되며, 시스템에 보안적인 측면에서 영향을 줄 수 있다. Docker Daemon Attack Surface에 대해서는 추후에 살펴볼 예정이다.
가장 먼저 도커그룹을 만든다.
# groupadd dockergroup
도커그룹이 생성되면 사용자를 생성하고 추가한다. 만약 사용하는 일반 계정이있다면 생성하지 않고 바로 추가하면 된다.
# useradd dockeruser
# passwd dockeruser
# usermod -aG dockergroup dockeruser
그룹에 사용자를 추가하였으면, 로그 아웃하고 다시 로그인한다. 다시 로그인 후 docker run hello-world 명령어를 입력해 보자. 테스트 이미지의 컨테이너가 실행되고 정보메시지가 출력되면 정상적으로 작업이 완료된것이다.
# docker run hello-world
2. Memory와 Swap 사용량 조절
도커(Docker)를 실행하였을때 아래와 같이 에러 메시지를 출력하는 경우가 발생할 수 있다.
WARNING: Your kernel does not support cgroup swap limit.
WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.
위와 같은 메시지를 방지하기 위해 시스템에서 Memory와 Swap 사용량을 조절할 수 있다. 메모리 오베헤드가 사용 가능한 총 메모리를 약 1%이며, 성능 저하는 약 10%이다. 메모리와 GNU GRUB (GNU 그랜드 통합 부트 로더)를 사용하여 시스템의 스왑을 사용하려면 아래와 같이 작업을 한다.
가장먼저 vi 편집기로 /etc/default/디렉터리에 있는 grub 파일을 연다.
# vi /etc/default/grub
/etc/default/디렉터리에 있는 grub 파일을 열렸으면, GRUB_CMDLINE_LINUX 값을 수정한다.
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
수정이 완료되었으면 파일을 저장 후 GRUB를 업데이트 한다.
# update-grub
GRUB가 업데이트되면, 시스템을 재부팅한다. 재부팅이 완료되면 수정한 값이 적용된다.
3. UFW 포워딩 활성화
도커(Docker)를 사용하면서 동일한 호스트에 UFW(Uncomplicated Firewall)를 사용하는 경우, 추가 구성을 해야한다. UFW는 우분투의 기본 방화벽 구성 도구로 iptables firewall 구성을 용이하게 하기 위해 개발되었으며, IPv4/IPv6 호스트 기반 방화벽을 만드는것을 도와준다. 기본적으로 UFW는 비활성화되어있다.
가장먼저 UFW가 설치 및 활성화되어 있는지 확인한다.
# ufw status
다음으로 vi편집기를 이용해서 /etc/default/ 디렉터리에 ufw 파일을 연다.
# vi /etc/default/ufw
ufw파일이 열리면 DEFAULT_FORWARD_POLICY 정책을 수정한다.
DEFAULT_FORWARD_POLICY="ACCEPT"
DEFAULT_FORWARD_POLICY 정책을 수정 후 저장한 다음 ufw를 Reload 시킨다.
# ufw reload
ufw가 Reload되면 도커(Docker)로 들어오는 연결을 허용 시킨다.
# ufw allow 2375/tcp
허용 정책이 추가되었으면 ufw가 활성화되어 있어도 도커(Docker)를 사용할 수 있게된다.
4. 부팅 후 도커 데몬(Docker Daemon) 자동 실행하기
우분투 부팅이 완료되면, 도커 데몬(Docker Daemon)을 시작하도록 설정 할 수 있다. 설정 방법은 systemctl을 이용한다.
# systemctl enable docker
이제 부팅이 완료되면, 도커 데몬(Docker Daemon)을 시작 자동으로 시작되게 된다.
Docker : https://www.docker.com/
[도커 엔진(Docker Engine)] User guide (tutorial) - 컨테이너에서 hello world (0) | 2016.06.07 |
---|---|
[도커 엔진(Docker Engine)] Uninstallation (0) | 2016.06.07 |
우분투에서 크롬 브라우저 설치 후 루트(Root)로 실행하기 (0) | 2016.06.05 |
[도커 엔진(Docker Engine)] Installation on Ubuntu (0) | 2016.06.05 |
기본 가상화 기술과 Docker (LXC 기술)의 차이 (0) | 2016.06.05 |