AWS Cloud School 13기 63일차

Forever 김·2026년 3월 31일

AWS Cloud School

목록 보기
60/97

TIL

배운 내용

docker compose

compose.yml 구성요소

  • services : 애플리케이션을 구성하는 모든 컴포넌트를 열거하는 부분이다.
  • networks : 서비스 컨테이너가 연결될 모든 도커 네트워크를 열거하는 부분
  • version : 이 파일에 사용된 도커 컴포즈 파일 형식의 버전을 가리킨다.
  • ports: -p, publish 옵션
  • volumes: -v, 호스트와 컨테이너 마운트
  • command: CMD
  • environtment: -e, 환경변수
  • depends_on: 의존성 설정(컨테이너 띄울 순서)도 가능. ex) ) nodejs 앱(todo,weather,chat)의 경우 몽고디비가 연동이 안되면 앱 자체가 죽어버림. nodejs 서비스를 정의하면서 몽고디비를 depends_on으로 걸어야함.

도커 컴포즈 파일은 애플리케이션의 '원하는 상태', 다시 말해서 모든 컴포넌트가 실행 중일 때 어떤 상태여야 하는지를 기술하는 파일이다. 또한, docker container run 명령으로 컨테이너를 실행할 때 지정하는 모든 옵션을 한데 모아 놓은 단순한 형식의 파일이다.

docker-compose.yml파일을 작성하고 docker compose up으로 실행한다.

Docker swarm

: 다수의 호스트(manager,workers)에 여러 종류의 컨테이너

docker swarm 클러스터

3개의 VM 준비

manager 노드 구성

root@worker2:~# docker swarm init

도커 엔진을 스웜 모든로 전환

docker swarm join --token SWMTKN-1-****로 생긴 토큰을 workers VM에 붙여주어 스웜에 참여시킨다.
docker swarm join-token worker
# 워커 노드로 스웜에 참여하기 위한 명령을 화면에 출력

docker swarm join-token manager
# 매니저 노드로 스웜에 참여하기 위한 명령을 화면에 출력

docker node ls
# 스웜에 참여 중인 노드의 목록을 출력

docker service

  • 다수의 호스트에 한가지 종류의 컨테이너를 한개 이상 생성, docker run으로 컨테이너를 생성하는 것과 비슷하다.
root@manager:~# docker service create --replicas 2 -p 5858:80 --name myweb oolralra/ipnginx
	# --replicas = 복제본. 서비스를 구성하는 컨테이너
	# ipnginx = 자신(호스트, 여기선 컨테이너)의 아이피를 출력.
docker service ps myweb
# 이 서비스의 레플리카 목록을 확인한다.

docker container ls
# 현재 컴퓨터에 실행 중인 컨테이너를 확인한다.

docker 오버레이 네트워크

  • docker swarm을 구성하는 순간, 오버레이 네트워크도 구성된다.
  • 오버레이 네트워크에 의해 다른호스트에 있는 컨테이너들끼리도 서로 통신이 된다.

docker stack deploy

도커 스웜에서 말하는 스택은 클러스터가 관리를 담당하는 리소스의 모임이다.
스택 : 서비스, 네트워크, 볼륨 등 여러 개의 도커 리소스를 묶어 만든 리소스를 말한다,

  • docker compose와 비슷. 컴포즈 파일이 필요하다.
  • 기존의 컴포즈파일과 거의 신택스가 흡사하지만 조금 다른게 있다.
profile
나를 한줄로

0개의 댓글