-- 참고로, Nginx Proxy Manager는 Docker에서만 사용가능하다.
Nginx Proxy manager 홈페이지 바로가기
../docker
│ docker-compose.yml // 도커 컴포즈 파일
└───data // Nginx 데이터
└───letsencrypt // letsencrypt 폴더
└───mysql // Nginx Proxy Manager DB 폴더
$ docker network create npm // npm 이라는 이름을 가진 네트워크 생성
이렇게 npm 이라는 네트워크를 생성해놓으면
다른 docker compose를 up할 때 편리하다.
version: "3"
services:
npm:
container_name: npm
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81'
environment:
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "npm"
DB_MYSQL_NAME: "npm"
# Uncomment this if IPv6 is not enabled on your host
# DISABLE_IPV6: 'true'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
depends_on:
- db
db:
container_name: npm-db
# image: 'jc21/mariadb-aria:latest' amd64 기준 db
image: 'yobasystems/alpine-mariadb:latest' # arm64 기준 db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: 'npm'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
TZ: Asia/Seoul
volumes:
- ./mysql:/var/lib/mysql
networks:
default:
external: true
name: npm
$ docker compsoe up -d // 백그라운드에서 docker container 실행
http://아이피주소:81 또는 http://도메인:81 로 이동 후
초기 이메일은 admin@example.com
초기 비밀번호는 changeme 이다.
Dashboard -> Proxy Hosts 로 이동하면,
우측 상단에 add proxy host 클릭.
Domain Names에 구입한 도메인
Forward Hostname / IP에 docker compose에 작성했던 container_name
Forward Port에 docker container 내부 포트
를 작성하고 save를 클릭하면 된다.
그리고 http://도메인 로 이동 후 Nginx Proxy Manager 에 접속된다면 끝!