187번째 줄: 187번째 줄:
</ref>
</ref>


== 이용 ==
== 역사 ==
솔로몬 하익스는 프랑스에서 [[PaaS]] 기업인 [[닷클라우드]] 안에 내부 프로젝트로서 도커를 시작했다.<ref>{{웹 인용|url=https://www.dotcloud.com/|title=One home for all your apps|date=|website=dotcloud.com|보존url=https://web.archive.org/web/20140517031011/https://www.dotcloud.com/|archivedate=2014-05-17|accessdate=2014-05-08}}</ref>
 
도커는 2013년 3월 오픈 소스로 출시되었다.<ref name="infoq-201303" />
 
== 사용법 ==


=== CLI를 이용한 이용 ===
=== CLI를 통한 이용 ===


=== 도커 데스크탑 ===
=== GUI를 통한 이용 ===
도커를 관리하는 GUI 앱으로 이미지를 검색하여 pull하거나 버튼 몇 번으로 이미지 생성, 빌드가 가능하다.


=== IDE/텍스트 편집기를 통한 이용 ===
==== 도커 데스크탑 ====
[[비주얼 스튜디오 코드]]에서 docker 확장기능을 이용하면 GUI를 통해서 도커 이미지를 생성, 빌드, 컨테이너 실행 등이 가능하다. <code>docker exec -it <container> bash</code> 같이 일일이 코드를 치지 않고 버튼을 눌러 컨테이너의 쉘에 접근할 수 있다.
도커를 관리하는 GUI 앱으로 이미지를 검색하여 pull하거나 버튼 몇 번으로 이미지 생성, 빌드가 가능하다. 리눅스에서는 사용 불가능하다.


== 역사 ==
==== IDE/텍스트 편집기를 통한 이용 ====
솔로몬 하익스는 프랑스에서 [[PaaS]] 기업인 [[닷클라우드]] 안에 내부 프로젝트로서 도커를 시작했다.<ref>{{웹 인용|url=https://www.dotcloud.com/|title=One home for all your apps|date=|website=dotcloud.com|보존url=https://web.archive.org/web/20140517031011/https://www.dotcloud.com/|archivedate=2014-05-17|accessdate=2014-05-08}}</ref>
[[비주얼 스튜디오 코드]]에서 확장기능을 이용하면 GUI를 통해서 도커 이미지를 빌드, 컨테이너 실행, 스택 실행 등이 가능하다. <code>docker exec -it <container> bash</code> 같이 일일이 코드를 치지 않고 버튼을 눌러 컨테이너의 쉘에 접근할 수 있다.


도커는 2013년 3월 오픈 소스로 출시되었다.<ref name="infoq-201303" />
==== portainer 사용 ====


== 도구 ==
== 도구 ==
=== Docker Compose ===
=== Docker Compose ===
Compose는 멀티 컨테이너 도커 애플리케이션을 정의하고 실행하는 도구이다.<ref>{{웹 인용|url=https://docs.docker.com/compose/overview/ |title=Overview of Docker Compose |accessdate=2017-07-06}}</ref> [[YAML]] 파일을 사용하여 애플리케이션의 서비스를 구성하며 하나의 명령을 가지고 모든 컨테이너의 생성 및 시작 프로세스를 수행한다. 구 버전은 docker-compose를 설치하여야 하지만 신버전은 docker 명령어에 통합되어 도커를 설치하기만 하면 되고 docker compose로 입력하면 된다. docker를 apt 같은 패키지 매니저를 통해서 설치하면 구 버전이 설치되며 꼭 공식 홈페이지에 있는 설치 코드를 이용하여 설치하여야 docker compose가 같이 설치된다.
Compose는 멀티 컨테이너 도커 애플리케이션을 정의하고 실행하는 도구이다.<ref>{{웹 인용|url=https://docs.docker.com/compose/overview/ |title=Overview of Docker Compose |accessdate=2017-07-06}}</ref> [[YAML]] 파일을 사용하여 애플리케이션의 서비스를 구성하며 하나의 명령을 가지고 모든 컨테이너의 생성 및 시작 프로세스를 수행한다. 도커 구 버전에서는 docker-compose를 설치하여야 하지만 신 버전은 docker 명령어에 통합되어 도커를 설치하기만 하면 되고 실행 명령어는 docker-compose 대신 docker compose이다. os마다 다르지만 docker를 패키지 매니저를 통해서 설치하면 구 버전이 설치될 수 있어 docker-compose를 별도로 설치해야 하는 경우가 생긴다. 공식 홈페이지에 소개된 설치 코드를 이용하여 설치하면 거의 최신 버전 설치가 된다.


=== Docker Swarm ===
=== Docker Swarm ===
Docker Swarm은 도커 컨테이너의 네이티브 [[컴퓨터 클러스터|클러스터링]] 기능을 제공하며 도커 엔진을 하나의 가상 도커 엔진으로 탈바꿈시킨다.<ref>{{웹 인용|url=https://www.linux.com/news/8-open-source-CONTAINER-ORCHESTRATION-TOOLS-KNOW |title=8 Container Orchestration Tools to Know |date=2017-04-12 |accessdate=2017-07-06}}</ref>
Docker Swarm은 도커 컨테이너의 네이티브 [[컴퓨터 클러스터|클러스터링]] 기능을 제공하며 하나의 가상 도커 엔진으로 탈바꿈시킨다.<ref>{{웹 인용|url=https://www.linux.com/news/8-open-source-CONTAINER-ORCHESTRATION-TOOLS-KNOW|title=8 Container Orchestration Tools to Know|date=2017-04-12|accessdate=2017-07-06}}</ref>  
 
도커 스웜은 컨테이너 오케스트레이션을 수행할 수 있게 해주며 여러 컴퓨터(노드)들을 클러스터로 구성했을 때 유용하다. 클러스터 중에서 여유 있는 컴퓨터에 자동으로 애플리케이션이 올라가 실행된다. 도커를 스웜 모드로 전환해야 하며 명령어를 통해 스웜 모드가 활성화된 노드들을 서로 연결시켜주어야 한다.


도커 1.12 이상부터 Swarm 모드가 도커 엔진에 통합되어 있다.<ref>{{웹 인용|url=https://docs.docker.com/swarm/ |title=Docker Swarm |accessdate=2017-07-06}}</ref>
도커 1.12 이상부터 Swarm 모드가 도커 엔진에 통합되어 있다.<ref>{{웹 인용|url=https://docs.docker.com/swarm/ |title=Docker Swarm |accessdate=2017-07-06}}</ref>
비슷한 소프트웨어로는 [[kubernetes]](쿠버네티스)가 있다. 도커 스웜은 진입 장벽이 낮고 학습자나 취미 이용가들에게 적합한 반면 쿠버네티스는 학습 곡선이 가파르고 초보자에게 어렵지만 기능이 강력하고 풍부해서 상업적으로 쿠버네티스를 사용하는 프로젝트가 많다. IT 관련 직종 스펙인 기술 스택에 쿠버네티스가 있는 경우는 흔하지만 도커 스웜은 상대적으로 드문 편.


== 같이 보기 ==
== 같이 보기 ==
216번째 줄: 224번째 줄:
* [[서비스 컴포넌트 아키텍처]]
* [[서비스 컴포넌트 아키텍처]]
* [[Podman]]
* [[Podman]]
* [[k8s]]
* [[kubernetes]]
* [[위키백과:베이그런트 (소프트웨어)|Vagrant]]
* [[위키백과:베이그런트 (소프트웨어)|Vagrant]]