728x90
docker pull nginx
nginx 이미지 다운로드
docker run -d --name nginx-server -p 80:80 --restart nginx
nginx 이미지 실행합니다.
docker cp nginx-server:/etc/nginx/nginx.conf /home/dev/nginx/nginx.conf
docker cp nginx-server:/etc/nginx/conf.d/default.conf /home/dev/nginx/conf.d/default.conf
nginx.conf, default.conf 파일 작성이 귀찮기 때문에 이미 만들어진 파일을 원하는 경로로 복사합니다. 저는 /home/dev/nginx/ 로 복사했습니다.
docker stop nginx-server
docker rm nginx-server
기존 nginx 컨테이너 삭제
sudo ufw allow 80/tcp
sudo ufw reload
저는 ufw 방화벽 사용중이기 때문에 80포트를 허용해줍니다.
docker network create app-network
컨테이너간 통신을 하기 위해
사용자 정의 네트워크 생성합니다.
docker run -d --name spring-app --network app-network -p 8888:8888 spring-boot-image
8888 포트로 스프링 부트 프로젝트를 실행합니다. 사용자 정의 네트워크도 연결해줍니다.
저는 image를 미리 만들어두었습니다.
/home/dev/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://spring-app:8888;
}
}
/home/dev/nginx/conf.d/default.conf 를 수정하여
proxy_pass http://spring-app:8888; 추가합니다. 컨테이너 이름과 포트입니다.
docker run -d --name nginx-server --network app-network -p 80:80 --restart unless-stopped
-v /home/dev/nginx/nginx.conf:/etc/nginx/nginx.conf
-v /home/dev/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf
nginx
nginx 이미지도 다시 컨테이너로 실행해줍니다. 볼륨으로 아까 복사해두었던 conf 파일들 지정해줍니다.
--restart unless-stopped 로 시스템이 다시 시작될 때 자동으로 nginx-server가 실행되게 해줍니다.
--network app-network 사용자 네트워크도 연결해줍니다.
docker exec -it nginx-server nginx -t
docker exec -it nginx-server nginx -s reload
설정파일에 문제가 없는지 테스트 및 리로드 합니다.
docker network inspect app-network
// 다른 추가방법
docker network connect app-network spring-app
docker network connect app-network nginx-server
네트워크에 연결된 컨테이너 확인가능 합니다.
docker ps
nginx 와 spring-app 컨테이너가 정상동작 중인지 확인 후
http://localhost 접속하여 정상적속 확인합니다.
반응형
'DevOps > Docker-Kubernetes' 카테고리의 다른 글
도커 컨테이너로 사용하지 않는 이미지 전체 삭제 (0) | 2025.03.29 |
---|---|
도커 일반사용자에게 권한 부여하기 (0) | 2021.07.01 |