Docker (14) - Docker Swarm으로 클러스터 서비스 운영하기
Docker Compose는 한 대의 호스트에서 여러 컨테이너를 함께 실행하고 관리하기에 편리하다. 그러나 서비스 복제본을 여러 서버에 나누어 배치하고, 서버나 컨테이너에 장애가 나도 원하는 개수를 유지하며, 무중단에 가깝게 버전을 교체하려면 클러스터 수준의 관리가 필…
TAG
14개의 글
Docker Compose는 한 대의 호스트에서 여러 컨테이너를 함께 실행하고 관리하기에 편리하다. 그러나 서비스 복제본을 여러 서버에 나누어 배치하고, 서버나 컨테이너에 장애가 나도 원하는 개수를 유지하며, 무중단에 가깝게 버전을 교체하려면 클러스터 수준의 관리가 필…
Dockerfile은 하나의 애플리케이션을 이미지로 패키징하는 데 적합하다. 하지만 웹 프론트엔드, 백엔드 API, 데이터베이스처럼 여러 컴포넌트로 구성된 애플리케이션을 실행하려면 각 컨테이너의 이미지, 포트, 환경 변수, 볼륨, 네트워크를 함께 관리해야 한다. Doc…
앞선 글에서는 Dockerfile의 주요 명령어와 이미지 빌드 방법을 정리했다. 이번 글에서는 빌드 환경과 실행 환경을 분리하는 멀티 스테이지 빌드(Multi stage build) 를 살펴본다. 멀티 스테이지 빌드를 사용하면 컴파일러, 패키지 관리자, 개발용 의존성처…
1. 개요 Docker (4)에서 FROM, WORKDIR, COPY, RUN, ENV, EXPOSE, CMD로 이어지는 Dockerfile의 기본 골격과 멀티 스테이지 빌드를 다뤘다. 이번 글에서는 그때 다루지 않았던 나머지 명령어들(ENTRYPOINT, ADD, V…
1. 개요 컨테이너는 기본적으로 호스트나 다른 컨테이너와 격리되어 있는 독립된 실행 환경이다. Docker(5)에서 사용자 정의 네트워크로 컨테이너끼리 이름으로 통신하는 방법을 다뤘는데, 이번 글에서는 그 배경이 되는 기본 브릿지 네트워크의 동작 원리 와, 포트포워딩이…
1. 개요 직접 만든 이미지( etakyung/for docker java:latest )를 Docker Hub에 올려두기만 하고 끝내면, 이게 다른 환경에서도 제대로 동작하는지는 알 수가 없다. 그래서 이번에는 로컬에서 이 이미지를 다시 pull 받아, MySQL 컨…
1. 개요 컨테이너 내부에 저장된 데이터는 컨테이너의 생명주기를 그대로 따라간다. 즉 컨테이너가 삭제되면 그 안에 쌓아둔 데이터도 함께 사라진다. DB 데이터처럼 컨테이너가 없어져도 유지되어야 하는 데이터가 있다면, 별도의 저장 매커니즘으로 데이터의 영속성을 확보해야…
1. 개요 Docker(2)에서 docker run 으로 컨테이너를 간단히 띄워봤지만, 실제로는 컨테이너가 어떤 상태를 거쳐 살아있고 사라지는지, run 의 옵션들이 각각 무엇을 하는지, 컨테이너 내부와 파일을 어떻게 주고받는지를 알아야 제대로 다룰 수 있다. 이번 글…
1. 개요 지금까지는 이미지를 항상 Docker Hub 같은 레지스트리에서 pull 로 받아서 사용했다. 그런데 인터넷이 안 되는 폐쇄망이거나, 레지스트리를 거치지 않고 이미지를 바로 다른 서버로 옮기고 싶을 때는 이미지를 파일(tar)로 통째로 내보내고 다시 불러오는…
Docker network Docker network는 컨테이너들이 서로 통신하는 공간이다. host에서 접속하려면 port publish가 필요하지만, 같은 Docker network 안의 컨테이너끼리는 container name으로 통신할 수 있다. 별도 네트워크를…
1. 개요 Dockerfile 은 docker build 가 image를 만들 때 읽는 레시피이다. FROM, COPY, RUN 같은 명령어를 한 줄씩 조합해서 "어떤 환경 위에 어떤 파일을 올리고, 어떤 명령을 실행할지"를 정의한다. 기본적인 명령어의 의미를 이해하고…
postgres:16과 postgres:18을 각각 다른 host port로 실행가능 1. PostgreSQL 16, 18 동시 실행 다른 host port가 각각 컨테이너의 5432포트로 포트포워딩이 되는 것을 확인할 수 있다. 즉 컨테이너가 다르면 포트 번호를 같은…
도커 데스크탑 설치 https://docs.docker.com/desktop/setup/install/mac install/ 나는 mac os를 사용하기에 위의 링크를 첨부했다. 위의 명령어를 터미널에 차례로 실행한 결과이다. 잘 다운로드가 된 걸 확인할 수 있다. d…
도커 용어 Docker : 애플리케이션 실행 환경을 image와 container로 표준화하는 도구와 생태계 Docker Engine : image build, container run, network, volume을 실제로 처리하는 Docker 실행 엔진 Image…