Log to grow

[Django & Docker] 로컬호스트에 mysql 띄우기 (docker-compose.yml) 본문

카테고리 없음

[Django & Docker] 로컬호스트에 mysql 띄우기 (docker-compose.yml)

kkkrrr 2021. 1. 7. 19:11

** 도커 이용하여 django 웹서버 로컬에 띄우기

killu.tistory.com/60

 

[Django & Docker] docker-compose로 로컬 서버 띄우기

** 로컬에 Docker가 설치되어 있다고 가정합니다. 1. Dockerfile 생성 Dockerfile이란 Docker image를 빌드하는데 필요한 명령어들을 모아놓은 파일입니다. docker build 명령어를 실행하면 docker는 Dockerfile..

killu.tistory.com

 

1. docker-compose.yml

mysql을 연동하기 위해 docker-compose.yml에 mysql 컨테이너를 추가한다.

version: '3' # docker compose verison
services: # docker compose가 실행할 서비스 목
  backend: # 서비스
    build:
      context: . # 현재 폴더를 빌드할 폴더로 선택
      dockerfile: Dockerfile
    ports:
      - 8000:8000
    volumes:
      - .:/app # . (현재 로컬 폴더)의 모든 파일과 /app을 링크하여 모든 파일 변경사항 반영
    depends_on: 
      - mysql_db

  mysql_db:
    image: mysql:8.0
    ports:
      - "33066:3306"
    environment:
      MYSQL_DATABASE: mysql_db # 해당 이름을 가진 db가 localhost에 생성됨
      MYSQL_USER: kkirru # db가 생성될 때 유저도 같이 생성
      MYSQL_PASSWORD: gusdngusdn 
      MYSQL_ROOT_PASSWORD: gusdngusdn # root 유저의 패스워드
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
    volumes:
      - .dbdata:/var/lib/mysql # db data가 저장 될 경로

 

 

2. 도커 빌드

아래 명령어를 차례로 입력하면 mysql 이미지를 pull해서 빌드한다.

docker-compose build
docker-compose up

 

그리고 아래와 같이 연결 정보를 입력하면 연결된다.

포트 번호를 docker-compose.yml에 명시한대로 입력하는 것을 잊지 말아야 한다.

 

 

** Public Key Retrieval is not allowed

만약 연결을 시도 했을 때 위와 같은 에러가 발생한다면 

useSSL과 allowPublicKeyRetrieval 속성을 true로 설정해주면 된다.

stackoverflow.com/questions/50379839/connection-java-mysql-public-key-retrieval-is-not-allowed

Comments