Docker 16

도커 이미지 기본개념

도커 이미지 모든 컨테이너는 이미지를 기반으로 생성되므로 이미지를 다루는 방법은 도커 관리에서 빼놓을 수 없는 부분입니다. 데비안 운영체제에서 api-geet install을 실행하면 apt 리포지터리에서 패키지를 내려받고 레드햇 운영체제에서 yum install 을 실행하면 yum 리포지터리에서 패키지를 받듯이 도커는 기본적으로 도커 허브라는 중앙 이미지 저장소에서 이미지를 내려받는다. 도커허브? 도커허브는 도커가 공식적으로 제공하고 있는 이미지 저장소로서, 도커 계정을 가지고 있다면 누구든지 이미지를 올리고 내려받을 수 있기 때문에 다른 사람들에게 이미지를 쉽게 공유할 수 있습니다. docker run, docker pull 등의 명령어로 이미지를 내려받을때 도커는 도커 허브에서 해당 이미지를 검색한..

Docker 2023.08.07

Dockerfile 기본개념

Dockerfile 이미지 생성하는 방법 아무것도 존재하지 않는 이미지를 생성(우분투, 센트os등등)을 생성 애플리케이션을 위한 환경을 설치하고 소스코드등을 복사해 잘 동작하는 것을 확인 컨테이너를 이미지로 커밋 위와같은 플로우대로 이미지를 만들어 개발중인 애플리케이션을 배포하면 해당 이미지는 매번 수작업으로 패키지를 설치하고 소스코드를 깃에서 복제하거나 호스트에서 복사해야합니다. 물론 직접 컨테이너에서 애플리케이션을 구동해 보고 이미지로 커밋하기 때문에 이미지의 동작을 보장할 수 있다는 점도 있습니다. 도커에서는 위와같은 일련의 과정을 손쉽게 기록하고 수행할 수 있는 빌드 명령어를 제공합니다. 완성된 이미지를 생성하기 위해 컨테이너에 설치해야 하는 패키지, 추가해야하는 소스코드, 실행해야 하는 명령어와..

Docker 2023.08.07

도커 데몬

도커 데몬 도커의 구조 도커를 사용할 때 docker라는 명령어를 통해 사용하는데 이는 /usr/bin/docker 에 위치하는 파일을 사용하는 것입니다. 그럼 해당 프로세스를 살펴보면 컨테이너나 이미지를 다루는 명령어는 /usr/bin/docker에서 실행되지만 도커 엔진의 프로세스는 /usr/bin/dockerd 파일로 실행되고 있습니다. 이는 docker 명령어가 실제 도커 엔진이 아닌 클라이언트로서의 도커이기 때문입니다. 도커의 구조는 크게 두가지로 나뉩니다. 하나는 클라이언트로서의 도커이고, 다른 하나는 서버로서의 도커입니다. 실제로 컨테이너를 생성하고 실행하며 이미지를 관리하는 주체는 도커 서버이고, 이는 dockerd 프로세스로서 동작합니다. 도커 엔진은 외부에서 API 입력을 받아 도커 엔..

Docker 2023.05.31

docker/ expose 와 port 의 차이점

expose 와 port 의 차이점 docker run을 통해 이미지를 컨테이너화 시킬때 여러가지 옵션을 부여하게되는데 이때 포트 개방을위해서 -p 옵션 혹은 expose 옵션을 써준다 이는 둘 동작이 비슷해 보이지만 완전 다르게 동작한다. expose expose는 컨테이너들한테 현제 컨테이너의 포트를 개방해 주는것이다. port port는 현제 컨테이너를 호스트에게 오픈해 주는것이다. 위 차이를 이해하고 써야한다. links 옵션 links 옵션은 컨테이너이름:별칭 의 형태로 설정하며 키벨류형태로 매핑돼서 컨테이너끼리 통신을할때 설정해놓은 별칭으로 통신할수 있게 해준다.

Docker 2023.05.31

도커 스웜 개념

도커 스웜? 사용하는 이유 기본적으로 흔히 사용하는 도커는 대부분 하나의 호스트를 기준으로 합니다. docker ps 명령어는 하나의 도커 엔진에 존재하는 컨테이너의 목록을 출력하며 create, run 명령어 또한 하나의 도커엔진에 컨테이너를 생성합니다. 만약 하나의 호스트 머신에 도커엔진을 구동하다가 cpu나 메모리, 디스크 용량과 같은 자원이 부족하면 이를 어떻게 해결할까? 이럴때 해결책은 돈을 둘둘 바르면 해결됩니다. 하지만 대부분의 상황에 이와같은 해결책을 선택할 수 있는게 아닙니다. 그래서 현제 흔히 사용하는방법은 여러대의 그저 그런 적당한 사양의 서버를 클러스터로 만들어 자원을 병령로 확장하는 것입니다. 이때 서버를 클러스터링 하기 위해서는 많은 작업이 필요합니다. 서버끼리 커넥션문제 그리고..

Docker 2023.05.31

도커와 컨테이너 생태계

도커와 컨테이너 생태계 2016년 도커 사는 컨테이너 기술이 특정 벤더 또는 회사에 의존적으로 개발되지 않도록 중립적인 입장에서 컨테이너 표준을 정의하는 OCI(오픈 컨테이너 계획) 을 발표했습니다. OCI에서는 컨테이너를 구성하기 위해 공통적으로 구현돼야 하는 런타임 및 이미지 스펙의 표준을 정의하고 있으며 2020년 까지는 도커 컨테이너를 포함한 여러 컨테이너 기술이 OCI를 준수하고 있습니다. OCI가 발표된 이후 Moby라는 큰 프로젝트 안에서 도커 컨테이너 기술을 관리하기 시작했고 도커는 runC, containerd 그리고 도커 엔진으로 분리 됐습니다. 도커의 핵심 프로세스라고 하면 보통 도커데몬을 떠올리기 쉽지만 사실 도커 데몬은 컨테이너가 아닙니다. 실제 컨테이너 프로세스라고 부를 수 있을..

Docker 2023.05.31