본문 바로가기

프로젝트 & TIL/일별 공부 기록 (백엔드 스쿨)

43일차 - 도커 컴포즈

도커 컴포즈

앞서 해야할 것

- mariaDB 이미지 실행

- 계정 생성 & 권한 부여

- selinux, firewalld, nginx 끄기 및 비활성화

- CREATE DATABASE nginx;

  

디렉토리 만들고 docker-compose.yml 작성

mkdir -p /docker_projects/nginx_proxy_manager_1

cd /docker_projects/nginx_proxy_manager_1

  

vim docker-compose.yml

version: "3"
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80' # Public HTTP Port
      - '443:443' # Public HTTPS Port
      - '81:81' # Admin Web Port
    environment:
      TZ: "Asia/Seoul"
      DB_MYSQL_HOST: "172.17.0.1" # 도커 호스트
      DB_MYSQL_PORT: 3306
      DB_MYSQL_USER: "아이디"
      DB_MYSQL_PASSWORD: "비밀번호"
      DB_MYSQL_NAME: "nginx"
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

 

docker compose up -d => 데몬 모드로 실행

- 생성한 디렉토리 이름에 맞춰 컨테이너가 실행된다.

- (docker compose down => 종료)

  

  

크롬에서 site1.com:81 => 관리 콘솔 접속

- 이전에 site1.com의 ip를 내가 사용 중인 리눅스 ip로 변경해놓았음

- 메모장 관리자 권한으로 실행하여 C:\Windows\System32\drivers\etc/hosts 파일에서 변경 가능

  

site1.com:81 접속했을 때 화면

임시 관리자 계정으로 접속(admin@example.com / changeme)

- 이메일, 비밀번호 변경

  

Hosts > Proxy Hosts > New Proxy Hosts

- site2.com / 172.17.0.1 / 8021 설정하고 저장

- 이전에 만든 node_hello_1 이미지를 -p 8021:8080으로 설정하고 run

- site2.com 접속하면 "Hello Node"가 뜬다.

- 172.17.0.1 => 컨테이너에서 리눅스 접근할 때의 ip / 192.168~은 PC에서 리눅스 접근할 때의 ip

  

site2.com(192.168~:80) 접속 => Nginx proxy manager => 172.17.0.1:8021 => node_hello_1의 8080

위의 순서로 토스된다.