해당 강의는 ex04 디렉토리에서 진행하였음.
1. 디렉토리 및 필요한 파일 생성
- server1
- webapp
- index.html
- Dockerfile
- webapp
- server2
- webapp
- index.html
- Dockerfile
- webapp
- lb
- Dockerfile
- conf
- nginx.conf
Dockerfile (server1, server2 동일)
FROM nginx
COPY ./webapp /usr/share/nginx/html
ENTRYPOINT ["nginx", "-g", "daemon off;"]
index.html (server1)
<h1>Welcome nginx Server1</h1>
index.html (server2)
<h1>Welcome nginx Server2</h1>
2. Dockerfile 빌드
ex04 디렉토리에서 진행.
docker build -t server1:1.0 ./server1
docker build -t server2:1.0 ./server2
3. Docker 이미지 확인 및 실행
docker images
빌드한 이미지가 제대로 생성되었는지 확인 한다.
이미지가 제대로 생성되었으면 아래의 명령어로 실행
docker run -d -p 8081:80 --name nginx-server1 server1:1.0
docker run -d -p 8082:80 --name nginx-server2 server2:1.0
docker ps 및 제대로 실행되었는지 확인하는 부분은 생략!
4. 구성하려는 서버 구성도
5. 설정파일 생성
lb/conf/nginx.conf 파일을 생성한다.
upstream server1{
server 172.17.0.3:80;
}
upstream server2{
server 172.17.0.4:80;
}
server{
listen 80;
server_name localhost;
#여기서 server1은 위의 upstream server1을 의미한다.
location /server1{
proxy_pass http://server1/;
}
#여기서 server2는 위의 upstream server2를 의미한다.
location /server2{
proxy_pass http://server2/;
}
}
여기서 upstream server1, upstream server2 IP는 docker inspect [CONTAINER ID] 로 확인하여 넣어주어야한다.!!
lb용 Dockerfile을 작성한다.
FROM nginx
COPY conf/nginx.conf /etc/nginx/conf.d/default.conf
ENTRYPOINT ["nginx", "-g", "daemon off;"]
6. lb 빌드하기
docker build -t lb:1.0 ./lb
7. lb 실행하기
docker run -d -p 8080:80 --name nginx-lb lb:1.0
8. 로드밸런스 확인하기
192.168.0.3:8080/server1
192.168.0.3:8080/server2
각각 접속해보고 server1, server2의 index.html 이 뜨면 성공!
'코딩이야기 > Docker' 카테고리의 다른 글
도커 입문 20강 - docker file step8 - MySQL 환경변수와 볼륨연결 (0) | 2024.07.02 |
---|---|
도커 입문 19강 - docker file step7 - nginx 게이트웨이 사용하기 (0) | 2024.07.01 |
도커 입문 17강 - docker file step5 - nginx설정 복사하기 (0) | 2024.06.29 |
도커 입문 16강 - docker file step4 - nginx 내부구성 알아보기 (0) | 2024.06.28 |
도커 입문 15강 - docker file step3 - RUN 명령어 (0) | 2024.06.26 |