문서 편집

Docker

Docker는 VMwareVirtualbox 등의 가상화 기술과 비슷하다. 이런 가상화 소프트웨어는 주로 OS를 통째로 돌리는데 사용을 했다. 하지만 Docker는 가상화 소프트웨어와는 달리 OS를 통째로 가상화하지 않고, 실행 환경만 분리하여 제공함으로써 가볍고 효율적으로 작동한다. (출처)

https://www.docker.com

리눅스의 LXC라는 컨테이너 기술을 좀 더 편하게 만든 프로젝트가 Docker 임.

VMware, Virtualbox, 페러렐즈 같은 것은 맥이나 리눅스 위에서 윈도우를 설치하고 인터넷 뱅킹 등을 할 때 많이 사용하는데 Docker는 이런 용도로는 쓸 수가 없다.

장점

다른 가상 머신에 비해서 성능 손실이 매우 적기 때문에 서버에서 유용하게 활용된다. 예를 들면 아파치+PHP+웹 소스를 Docker 이미지로 묶어 놓은 뒤 서버에서 이미지를 컨테이너로 실행만 하면 된다. 서버 세팅을 이미지로 만들어서 반복 작업을 자동화하는 것이다. 물론 Docker 이미지는 인터넷으로 주고 받을 수 있다.

특히 요즘 많이 사용되는 클라우드에서 가상 서버는 시간당 돈을 내기 때문에 서버를 적게 쓰는게 유리함. 그래서 Docker로 이미지를 만들어 놓은 뒤 사용량이 많을 때만 서버를 띄우고, 사용량이 줄어들면 서버를 삭제하는 Auto Scaling에 적합함.

리눅스를 사용하다 보면 소스를 컴파일해서 설치하거나, 패키지를 설치할 때가 많은데요. 이게 점점 쌓이면 컴퓨터가 떡이된다. 지우는 것도 쉽지 않고 설정해놓은게 꼬이면 아주 귀찮아진다. 그래서 서버서 설정이나 개발 환경을 Docker에서 테스트해보는 것이다. 잘되면 이미지로 만들고 안될때는 삭제하면 그만임.

VMware, VirtualBox 등의 가상 이미지와 스냅샷은 용량이 크지만, Docker는 몇 십메가에서 몇 백메가 수준임. 원한다면 10메가 이내로 이미지를 만들 수도 있다.

단점

OS자체를 올리는 것이 아니기 때문에 윈도우 컨테이너를 지원하지 않는다. 맥 혹은 리눅스 → 도커 → 윈도우 이런 용도로는 쓸 수가 없다.

윈도우용 도커는 윈도우에 Virtualbox를 올리고, 이것에서 도커를 실행한다;(눈물)

MS에서 차기 윈도우 서버에 Docker를 지원하겠다고 발표를 했다. 이렇게 되면 윈도우(호스트)-윈도우(컨테이너) 모양으로 실행할 수 있을 것이다.

설치

https://docs.docker.com/install/linux/docker-ce/ubuntu/

도커의 판본은 커뮤니티 버전의 docker-ce와 엔터프라이즈 docker-ee로 나뉜다. 우분투에서는 겹치는 이름을 피하기 위해 패키지 이름이 docker.io였다.

설치하려면 docker-ce를 설치한다.

구판 삭제

혹시 구판이 설치되어 있다면 삭제한다.

sudo apt-get remove docker docker-engine docker.io

레포지토리 설정

기본 패키지 확인… 대개는 이미 깔려있댜.

sudo apt-get install \
  apt-transport-https \
  ca-certificates \
  curl \
  software-properties-common

키추가

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
 "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
 $(lsb_release -cs) \
 stable"

sudo apt-get update

sudo apt-get install docker-ce

실행

docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]

다음은 자주 사용하는 옵션들입니다.

옵션	설명
-d	detached mode 흔히 말하는 백그라운드 모드
-p	호스트와 컨테이너의 포트를 연결 (포워딩)
-v	호스트와 컨테이너의 디렉토리를 연결 (마운트)
-e	컨테이너 내에서 사용할 환경변수 설정
–name	컨테이너 이름 설정
–rm	프로세스 종료시 컨테이너 자동 제거
-it	-i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션
–link	컨테이너 연결 [컨테이너명:별칭]

https://subicura.com/2017/01/19/docker-guide-for-beginners-2.html

토론

vln
CC Attribution-Noncommercial-Share Alike 4.0 International 별도로 명시하지 않을 경우, 이 페이지의 내용은 다음 라이선스에 따라 사용할 수 있습니다: CC Attribution-Noncommercial-Share Alike 4.0 International
4.4 KB tech/docker.txt · 마지막으로 수정됨 2018/11/28 19:53 저자 V_L V_L

0.013 seconds in showing this page on this powerful server.