본문 바로가기

Container/Docker

(21)
06. Docker Run 앞서 도커 기본 커맨드에 간단히 살펴보았는데 이중 컨테이너를 시작하는 경우 사용되는 docker run 명령에 대한 옵션 부분을 좀 더 자세히 살펴보자. Pulling Image docker run 명령은 이미지 다운로드(이미지가 없는 경우) + 이미지 실행 을 수행하는 명령으로 해당 이미지가 없으면 도커 레지스트리에서 이미지를 다운로드 한 다음 실행시킨다. $ docker run redis Unable to find image 'redis:latest' locally latest: Pulling from library/redis 8d691f585fa8: Pull complete 8ccd02d17190: Pull complete 4719eb1815f2: Pull complete 200531706a7d: ..
04. Docker CE 설치하기 앞으로 실습 자체는 리눅스를 기반으로 진행할 예정이다. 관련하여 도커 컨테이너 프로비저닝 툴인 Docker Machine 배포를 위한 툴인 Docker Compose 도 같이 설치한다. 최신 버전이나 새로운 Feature 는 계속해서 추가되고 있으므로 실제로 설치시에는 아래 사용한 스크립트를 바로 사용하지 않고 해당 사이트에 들어가서 최신 릴리즈를 받는 것이 더 좋다. Docker CE ( Community Edition ) 버전 설치 https://get.docker.com/ 사이트에 들어가면 각 기본 Linux 운영체제 모두를 포괄하여 설치가능한 스크립트 및 사용 방법이 스크립트 헤더에 간략히 소개되어 있다. 나는 Ubuntu 로 진행하였고 아래 사이트에서 설치와 관련된 부분을 확인하였다. https..
03. Docker 시스템 Docker Engine 도커 엔진을 설치하면 Docker CLI, 도커 데몬, REST API 서버 를 백그라운드 서비스로 실행한다. 도커 데몬은 이미지 컨테이너 볼륨 및 네트워크와 같은 Docker 객체를 관리한다. Docker REST API 서버는 프로그램이 도커 데몬과 통신을 위해 사용할 수 있는 API 인터페이스이다. 이 REST API 를 활용해서 자신의 도구를 만들수 있다. CLI 는 앞으로 다뤄볼 docker run 등의 명령어 셋을 제공하며 명령어 셋을 사용하더라도 내부적으로는 REST API 를 사용해서 도커 데몬과 통신한다. 도커 CLI 가 반드시 동일한 호스트에 있을 필요는 없고 랩톱과 같은 다른 시스템에 있을 수 있는데 이 경우 docker -H 옵션을 통해 도커 엔진 주소와 포..
02. 가상 머신과 Docker Docker 는 지금까지 사용해오던 가상머신과 비슷하다. 가상 머신에 리눅스를 설치한 뒤 각종 서버 프로그램과 DB 를 설치하고 개발한 애플리케이션과 웹사이트를 실행했다. 요즘에는 서비스 형태로 제공되는 AWS, Azure, Google Cloud Platform 등을 사용하기도 한다. VM 문제는 이 가상머신이 편하긴 한데 성능이 좋지 못한 단점이 있다는 것이다. 가상화 방식이 전가상화 (VMWare) 방식이던 반 가상화 (Xen) 방식이던 Guest OS 를 설치해야 한다. 결국 이미지 내부에 OS 이미지가 포함되기 때문에 이미지 용량이 커진다. 공유되지 않는 부분만 따로 보면 아래와 같다. Docker 반면에 도커는 리눅스 컨테이너로 Host Server 의 Kernel 을 공유한다. 즉 VM 과 ..
01. Docker 소개 Docker Why We Need 보통 하나의 프로그램은 여러가지 프로그램과 라이브러리를 사용해서 개발하며 배포시 여러가지 환경에 배포해야 한다. 이때 개발에 사용되는 여러 프로그램은 호환되는 OS 와 Libraries 가 있을 것이고 동일한 Library 를 사용하는 두 프로그램이 서로 다른 Version 이 필요하거나 프로그램 사이의 Dependency 로 인해 다른 도구를 찾거나 다른 OS 를 찾거나 하는 등 여러가지 호환성 문제에 직면하게 된다. 도커를 사용하면 프로그램에 필요한 각각의 프로그램과 이 각각의 프로그램에 필요한 Library, OS , Dependency 를 각 요소를 모아 컨테이너에 담고 패키징하여 필요할때 패키징된 이미지를 컨테이너로 실행시켜 사용할 수 있다. 즉 위와 같은 Ma..