Docker 이미지를 만드는 기술 (Build)
docker는 애플리케이션 실행에 필요한 프로그램 본체, 라이브러리, 미들웨어, OS나 네트워크 설정 등을 하나로 모아서 Docker 이미지를 만든다.
Docker 이미지의 정체는 애플리케이션 실행에 필요한 파일들이 저장된 디렉토리이다.
Docker 명령을 사용하면 이미지를 tar 파일로 출력할 수 있다.
지속적 인티그레이션과 지속적 딜리버리의 관점에서 코드에 의한 인프라의 구성 관리를 생각하면 Dockerfile을 사용하여 관리하는 것이 바람직하다.
Docker 이미지는 겹쳐서 사용할 수 있다. 예를 들어, OS용 이미지에 웹 애플리케이션용 이미지를 겹쳐서 다른 새로운 이미지를 만들 수 있다.
Docker 이미지를 만드는 기술 (Ship)
Docker 이미지는 Docker 레지스트리에서 공유할 수 있다.
Docker Hub는 GitHub과 연계하여, GitHub 상에서 Dockerfile을 관리하고, 거기서 Docker 이미지를 자동으로 생성하여 Docker Hub에서 공개하게 하는것도 가능하다.
Docker 컨테이너를 작동시키는 기능 (Run)
Docker는 Linux 상에서 컨테이너 단위로 서버 기능을 작동시킨다. 또한 도커는 이미 움직이고 있는 OS 상에서 프로세스를 실행시키는 것과 거의 똑같은 속도로 빨리 실행
Docker는 하나의 Linux 커널을 여러개의 컨테이너에서 공유한다.
컨테이너 안에서 작동하는 프로세스를 하나의 그룹으로 관리한다.그리고 그룹이 다르면 프로세스나 파일에 대한 액세스를 할 수없다.
제품 환경에서는 모든 Docker 컨테이너를 한대의 호스트 머신(물리 머신)에서 작동시키는 일은 드물며, 여러대의 호스트 머신으로 된 분산 환경을 구축한다. 그리고 보통 컨테이너 관리에 대해서 오케스트레이션 툴을 이용하는 것이 일반적이다.
댓글