- 오류 찾기
아래 repo 의 docker 설정의 오류를 잡아 보세요.
https://github.com/dMario24/k1s_err
GitHub - dMario24/k1s_err
Contribute to dMario24/k1s_err development by creating an account on GitHub.
github.com
충격실화
이 때까지 NGNIX 인 줄 알았는데
NGINX
였다....!

어제 blog-1, blog-2 두 개의 분산 서버를 사용하는 실습을 했다.
새로운 시나리오 : blog1, blog2 가 존재 blog3 이 새로 생김 - LB 에 blog3 이 추가 되도록
-docker compose를 사용해서 먼저 서버 2개와 lb 서버를 띄워보자.
services:
blog_1:
build: ./docker/httpd
container_name: blog-1
ports:
- 8051:80
blog_2:
build: ./docker/httpd
container_name: blog-2
ports:
- 8052:80
load_balancer:
build: ./docker/nginx
container_name: blog-lb
ports:
- 8949:80
depends_on:
- blog_1
- blog_2
links:
- blog_1
- blog_2
develop:
watch:
- action: sync+restart
path: ./docker/ngnix/default.conf
target: /etc/ngnix/conf.d/default.conf
$ docker compose -f docker-compose.yml up -d
위의 명령어를 통해 컨테이너(총 3개)를 실행시킬 수 있다.
그러다가 !!
중간에 blog-3을 추가했다.
compose-yml 파일을 아래와 같이 수정했다.
services:
blog_1:
build: ./docker/httpd
container_name: blog-1
ports:
- 8051:80
blog_2:
build: ./docker/httpd
container_name: blog-2
ports:
- 8052:80
blog_3:
build: ./docker/httpd
container_name: blog-3
load_balancer:
build: ./docker/ngnix
container_name: blog-lb
ports:
- 8949:80
depends_on:
- blog_1
- blog_2
- blog_3
links:
- blog_1
- blog_2
- blog_3
develop:
watch:
- action: sync+restart
path: ./docker/ngnix/default.conf
target: /etc/ngnix/conf.d/default.conf
$ docker compose up -d --build
여기서 추가적으로 해본게 있는데,
docker-compose.yml 파일을 다시 수정해보았다.(blog-3 없는 버전)
그리고 -d, --build 옵션을 통한 compose up을 수행했는데 여전히 blog-3이 수행 중 이었다.
docker compose가 up 명령어를 실행할 때 정의되지 않은 서비스나 중단 상태의 컨테이너를 자동으로 삭제하지 않기 때문이다.
--remove-orphans 옵션을 사용하면 docker-compose.yml에 정의되지 않은 기존 컨테이너를 자동으로 삭제할 수 있다.
# 새 설정 적용과 동시에 `blog_3` 컨테이너 삭제
$ docker compose up -d --build --remove-orphans
다음 방법은 일일이 적지 않고 여러 개 컨테이너를 생성하는 방법이다.
# docker-compose 수정
name: samdul
services:
blog:
build: ./docker/httpd
ports:
- 80
deploy: //scale out 옵션
mode: replicated
replicas: 1
environment:
- VIRTUAL_HOST=localhost
- VIRTUAL_PORT=80
load_balancer:
image: nginxproxy/nginx-proxy
ports:
- "8949:80"
depends_on:
- blog
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
# nginx/default.conf
upstream blog_servers{
server samdul-blog-1:80;
server samdul-blog-2:80;
server samdul-blog-3:80;
}
server{
listen 80;
location / {
proxy_pass http://blog_servers;
}
}
$ docker compose up -d --scale blog=3 --build
* 만약 scale blog=4로 하면 blog1 ~ blog4까지 생성되고,
그 상태에서 scale blog=2로 빌드하면 3,4는 자동으로 지워진 상태가 된다.
'playdata > daily' 카테고리의 다른 글
17주차 : Day 4 (10/31) (7) | 2024.10.31 |
---|---|
17주차 : Day 3 (10/30) (1) | 2024.10.31 |
17주차 : Day 1 (10/28) (2) | 2024.10.28 |
16주차 : Day 1 (10/21) (1) | 2024.10.21 |
12주차 : Day 5 (9/27) (1) | 2024.09.30 |