티스토리 뷰
Ubuntu 에서 Docker 를 사용하기 위한 기초적인 옵션을 설정하기 위한 정보 들입니다.
참고 원문서 : Installation on Ubuntu
1. Docker 그룹 생성
docker 의 데몬은 TCP port 대신 Unix socket 과 바인드 되어 있습니다. 때문에 기본 유저로 root 로 설정이 되어 있어서 sudo 를 이용해 주어야 하는대요. docker 그룹을 생성하여 docker 명령을 이용하는대 sudo 를 사용하지 않도록 하는 것이 목표 입니다.
방법은 간단합니다. docker 그룹을 생성 후 docker 에 사용자 계정을 추가하면 됩니다. docker 데몬이 실행될때 Unix socket 의 읽기/쓰기의 권한을 docker 그룹이 가지고 있기 때문에 가능합니다.
주의 : docker 그룹은 docker 관해서는 root 같은 권한을 가지게 됩니다. 따라서 당연히 보안 문제가 발생할 수 있는데요. Docker Daemon Attack Surface 를 참고 하시기 바랍니다. ( 후에 기회가 된다면 번역 하겠지만... )
1-1 docker 그룹에 사용자 계정 넣기
아래의 명령어로 docker 그룹에 사용자 계정을 넣어 주시기 바랍니다.
$ sudo usermod -aG docker 사용자 계정
1-2 로그아웃 후 로그인하기
사용자 계정의 권한을 재대로 적용하기 위해서 로그아웃 후 로그인 을 진행하여 주시기 바랍니다.
1-3 적용 확인하기
이제 재대로 적용 되었는지 확인해볼 시간입니다. hello-world 로 확인해보시기 바랍니다.
$ docker run hello-world
2. memory 및 swap 조정하기
WARNING: Your kernel does not support cgroup swap limit. WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.
사용자에 따라서는 docker 명령어 사용시 위의 경고 를 확인하실수 있는대요. 위의 메세지를 예방하기 위해서는 메모리와 스왑 계산을 시스템에서 할수있도록 활성화 해주셔야 합니다. 활성화를 위해서는 GNU GRUB 를 이용합니다.
$ sudo vim /etc/default/grub
위의 파일내에서 GRUB_CMDLINE_LINUX 의 값을 아래와 같이 수정해 주시기 바랍니다.
GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1"
그리고 파일을 저장하고 닫으신 후
GRUB 를 업데이트 하시고 시스템을 재시작해주시기 바랍니다.
$ sudo update-grub $ reboot
3. UFW 방화벽 설정하기
UFW는 ( Uncomplicated Firewall ) Ubuntu 에 기본적으로 설치되어 있는 방화벽으로 docker 사용을 위해서는 몇가지 설정을 해야 되는대요 첫번째로 ip forward 를 위해서 DEFAULT_FORWARD_POLICY 를 accept 로 만들어 주셔야 합니다.
또한 ufw 는 기본적으로 incoming ( 들어오는 트래픽 ) 에 대해서 모두 deny ( 거절 ) 정책을 가지고 있습니다. 따라서 네트워크 트래픽이 container 에 닿게 하기 위해서는 docker 기본포트인 2375에 대해서 incoming 을 allow ( 허용 ) 해주셔야 합니다.
3-1. ufw 상태 체크 및 ufw DEFAULT_FORWARD_POLICY 변경하기
우선 ufw status 로 ufw 의 상태를 확인해보시고 /etc/default/ufw 를 아래와 같이 수정해 주시면 됩니다.
$ ufw status $ sudo vim /etc/default/ufw
ufw 상태가 disable 로 되어있다면 $ ufw enable 를 통하여 활성화 할수 있습니다. 하지만 만약 ssh (21) 포트를 사용 중이 시라면 ufw 를 enable 로 하기전에 ssh 포트를 열고 enable 로 만들어 주시기 바랍니다. 설정은 아래의 글들을 참고하여 주시기 바랍니다.
위의 파일을 여셧다면 이제 DEFAULT_FORWARD_POLICY 를 ACCEPT 로 설정하여 주시기 바랍니다.
DEFAULT_FORWARD_POLICY="ACCEPT"
이제 파일을 저장한후 닫아 주시고 ufw 를 다시 로드 해주시기 바랍니다.
$ sudo ufw reload
3-2. ufw 에 tcp 포트 2375 허용 하기
$ sudo ufw allow 2375/tcp
4. Docker 를 위한 DNS 서버 설정하기
Ubuntu 에서는 기본 네임서버로 127.0.0.1 을 가르키고 있습니다. 이 파일은 /etc/resolv.conf 인대요. NetworkManager 의 dnsmasq 또한 /etc/resolv.conf 의 nameserver 127.0.0.1 을 이용합니다.
위와 같이 셋팅이 되신분들은 container 를 시작할때 아래와 같은 경고 창을 보실수 있으실 것 입니다.
WARNING: Local (127.0.0.1) DNS resolver found in resolv.conf and containers can't use it. Using default external servers : [8.8.8.8 8.8.4.4]
이 경고는 docker 의 컨테이너가 내부의 DNS nameserver 를 사용하지 못해서 인대요. docker 는 기본적으로 외부의 nameserver 를 사용합니다.
경고를 없애기 위해서는 docker 컨테이너에 DNS 서버를 지정해줄 필요가 있습니다.
우선은 /etc/default/docker 를 열어서 DOCKER_OPTS='dns 8.8.8.8' 과 같이 수정해줍니다.
$ sudo vim /etc/default/docker DOCKER_OPTS="--dns 8.8.8.8"
또한 --dns 8.8.8.8 --dns 8.8.4.4 --dns 168.126.63.1 과 같이 다중으로 설정할 수 있으니 참고 하시기 바랍니다.
추가로 국내의 DNS와 해외의 DNS 주소들 입니다.
국내 DNS
서비스 |
DNS 서버 - 1 |
DNS 서버 - 2 |
KT |
168.126.63.1 |
168.126.63.2 |
LG |
164.124.101.2 |
203.248.252.2 |
SK |
219.250.36.130 |
210.220.163.82 |
해외 DNS
서비스 |
DNS 서버 - 1 |
DNS 서버 - 2 |
구글 DNS |
8.8.8.8 |
8.8.4.4 |
코모도 DNS |
8.26.56.26 |
8.20.247.20 |
Open DNS |
208.67.222.222 |
208.67.220.220 |
시스코 DNS |
64.102.255.44 |
128.107.241.185 |
그리고 모두 설정하셨다면 docker 를 재시작 해주도록 합니다.
$ sudo restart docker
이상으로 docker 를 사용하기전에 ubuntu 에서 해야 하는 셋팅들에 대해 알아봤습니다. 즐거운 하루 되시기 바랍니다. ^^
'Server Manage > Docker' 카테고리의 다른 글
Docker 컨테이너 한번에 끄기 (0) | 2017.02.16 |
---|---|
Docker 를 이용하여 간단히 Nginx 설치하기 (2) | 2017.02.08 |
Docker Container 콘솔 ( 쉘 - shell ) 접속하기 (0) | 2017.02.08 |
Ubuntu에 Docker Engine 설치하기 (0) | 2015.07.15 |
Docker 란 무엇인가요? Immutable Infrastructure 란 무엇인가요? (0) | 2015.07.13 |
- Total
- Today
- Yesterday
- 서버 개발
- 게임
- 게임 개발
- 설치
- 개발자
- mac
- SNS
- Developer
- 인터넷
- Laravel
- Database
- 에러
- 데이터베이스
- Tutorialbook
- php
- 웹 개발
- 우분투
- it
- 웹
- 서버
- html
- 맥
- 웹 서버
- cocos2d-x
- ubuntu
- 웹 개발자
- Nodejs
- JavaScript
- 튜토리얼북
- 개발
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |