320x100
로컬에서 8080 포트로 앱을 하나 띄웠습니다.
my-app.com 으로 접속시 위 앱으로 접속하려고 합니다.
mac 기준으로 작성하였습니다.
host 파일에 도메인 등록
# /private/etc/hosts
127.0.0.1 my-app.com # add
host파일에 127.0.0.1 my-app.com 을 추가해줍니다. host파일 등록 참고
docker로 nginx 띄우기
my-app.com -> docker로 띄워진 nginx(80번 포트 listen)
host 파일 등록으로 위 작업이 가능해졌고
docker로 띄워진 nginx(80번 포트 listen) -> localhost:8080 접속
이제 위와 같은 작업을 하려고 합니다.
이를 위해 총 3개의 파일을 추가했습니다.
1. custom.conf
nginx conf 파일
server {
listen 80;
server_name my-app.com;
location / {
proxy_pass http://host.docker.internal:8080;
}
}
맥에서는 host.docker.internal 로 도커에서 호스트 호출할 수 있습니다.
2. Dockerfile
FROM nginx:latest
COPY custom.conf /etc/nginx/conf.d/custom.conf
CMD ["nginx", "-g", "daemon off;"]
nginx는 /etc/nginx/conf.d 폴더 하위에 있는 *.conf 파일들을 모두 nginx 설정으로 참조합니다.
따라서 위에서 등록한 custom.conf 를 해당 폴더로 복사해줍니다.
3. docker-compose.yml
version: '3'
services:
nginx:
build: .
image: nginx:app
ports:
- "80:80"
networks:
- backend
networks:
backend:
driver: bridge
docker-compose 명령어로 nginx 를 띄우기 위해 docker-compose.yml 파일을 추가합니다.
$ docker-compose up
위 명령어로 nginx를 띄울수 있습니다.
이 때 명령어는 docker-compose.yml 이 있는 폴더 위치에서 해야하고 위3개의 파일은 모두 한 폴더안에 있어야 합니다.
$ docker-compose down
종료 시에는 위 명령어를 사용합니다.
이제 my-app.com 으로 작업시 8080 포트로 제공하던 app으로 접속이 되는것을 확인할 수 있습니다.
my-app.com --(hosts file)--> docker로 띄워진 nginx(80번 포트 listen) -> localhost:8080 접속
중요하니까 한 번 더
320x100
'DevOps' 카테고리의 다른 글
[AWS][Nginx] static 파일 연결하기 (0) | 2020.07.12 |
---|---|
[Jenkins] pipeline script (0) | 2019.10.14 |
[Docker] <none> 태그 이미지 일괄 삭제 (1) | 2019.06.11 |
Window 10으로 Docker 시작하기 (0) | 2018.10.27 |
댓글