본문 바로가기

도커8

9. 도커 엔진, cgroups 리눅스 호스트에 docker를 설치하면 컴포넌트가 3개 설치된다. Docker Daemon은 docker객체인 이미지와 컨테이너, 볼륨 및 네트워크를 관리하는 백그라운드 프로세스이다. Docker REST API 서버는 프로그램이 쓰는 API인터페이스로 Daemon과 통신하고 명령어를 제공할때 사용된다. Docker CLI는 명령줄 인터페이스이며 컨테이너 실행, 중지 및 이미지 제거 등에 사용된다. 또한 REST API를 사용하여 Docker Daemon과 상호작용하는데 이때는 Docker CLI가 반드시 같은 호스트에 있지 않아도 된다. docker 명령어에서 -H 옵션을 사용해서 원격 Docker Engine의 주소와 포트를 지정하면 된다. cgroups Docker 호스트와 컨테이너는 CPU와 메모.. 2023. 1. 25.
7. docker compose 다수의 서비스를 실행하는 복잡한 애플리케이션을 설정하기위해서는 docker compose를 사용하는게 좋다. yaml형식의 구성파일인 docker-compose.yml을 생성하고 $ docker-compose up 명령어를 실행하기만 하면 docker-compose.yml에 구성한 애플리케이션 스택 전체를 불러올 수 있다. 대신 하나의 docker host에 실행되는 컨테이너에만 사용할 수 있다. 예들들어 파이썬으로 개발한 voting-app 으로 투표를 하면 redis 인메모리 db에 저장되고 .NET으로 개발한 worker 서버가 영구 스토리지에 업데이트하는데 이 때 영구 스토리지는 PostgreSQL이다. 그리고 투표 결과는 Node.js로 개발했다. $ docker run -d --name=red.. 2023. 1. 25.
6. CMD vs ENTRYPOINT $ docker run ubuntu 위 명령어를 실행하면 바로 종료된다. ubuntu 이미지의 Dockerfile을 살펴보면 CMD로 bash 를 사용하는걸 볼 수 있다. bash는 터미널에서 입력을 수신하는 셀인데 터미널을 찾을 수 없으면 종료한다. docker는 기본적으로 실행될 때 컨테이너에 터미널을 연결하지 않는다. 그래서 bash 프로그램은 터미널을 찾지 못하고 종료되는것이다. 1. 컨테이너를 시작하기 위한 다른 명령어는 어떻게 지정할 수 있을까? 한 가지 옵션은 docker run 뒤에 명령어는 추가하는 것이다. $ docker run ubuntu sleep 5 위와 같이 sleep 5 명령어를 추가하면 컨테이너가 시작될 때 sleep 프로그램을 실행하고 5초 후에 종료된다. 2. 어떻게 하면.. 2023. 1. 22.
2. 도커에서 ubuntu 이미지 실행(sleep, exec) $ docker run ubuntu 위 명령어를 입력하면 ubuntu 이미지의 인스턴스를 실행하고 즉시 종료된다. docker ps 로 실행중인 컨테이너 목록을 확인해도 실행되고 있는 컨테이너가 없다. docker ps -a 로 멈춘 컨테이너까지 포함한 모든 컨테이너를 확인해 보면 새 컨테이너가 종료된 상태임을 확인할 수 있다. 왜 이런걸까? 가상머신과는 다르게 컨테이너의 목적은 운영체제 호스팅이 아니라 특정 작업이나 프로세스를 처리하는것이다. 컨테이너는 내부 프로세스가 실행되는 동안만 존재하며, 작업이 끝나면 컨테이너는 종료된다. ubuntu 이미지로 아무 작업도 하지않고 실행만 하니까 바로 종료되는 것이다. ubuntu의 경우와 같이 실행되는 서비스가 없는 이미지라면 sleep 명령어를 통해 dock.. 2023. 1. 19.
우분투에 도커 설치 https://docs.docker.com/engine/install/ubuntu/ Install Docker Engine on Ubuntu docs.docker.com 도커 공식문서 우분투 설치 관련 페이지로 들어간다. OS 요구사항 - 위 버전에서만 설치할 수 있다. 0. 우분투 버전 확인하기 $ cat /etc/*release* 명령어를 입력하면 현재 우분투의 버전을 확인할 수 있다. 중간에 VERSION= ... 부분을 보면 Jammy Jellyfish 라고 나와있는걸 확인할 수 있다. 1. 기존에 오래된 docker 버전이 있다면 삭제하기 2. 쉘 스크립트 방식으로 docker 설치하기 sh파일을 다운받고 실행하면 도커 설치가 시작된다. 1~2분 정도 걸릴 수 있다. 3. 설치된 도커 버전 확인.. 2023. 1. 18.
도커 작동원리 오늘날 애플리케이션은 컨테이너화된 버전이 있는것들이 많다. 많은 기관에서는 자사 제품을 컨테이너화 해서 docker Hub라는 퍼블릭 docker 보관소에 공개하고있다. OS, DB, 서비스, 툴 등을 찾을 수 있고 이미지를 찾아 호스트에 docker를 설치하면 docker run 명령어에 이미지 이름만 붙이면 애플리케이션을 손쉽게 실행할 수 있다. 이미지 vs 컨테이너 이미지는 VM템플릿과 같은 패키지 또는 템플릿으로 컨테이너를 만드는데 사용되며 컨테이너는 서로 분리된 이미지 인스턴스가 실행되는 곳으로 각각의 환경과 프로세스들을 지니고 있다. 만약 찾는 이미지가 없다면 이미지를 직접 만들어 docker Hub에 올려서 다른 사람들과 공유할 수도 있다. 과거에는 개발자들이 애플리케이션을 직접 개발하고 운.. 2023. 1. 18.