Docker를 이용해 MySQL 연결해보기.

2023. 4. 30. 16:12· Backend/DataBase
목차
  1. 서론
  2. docker-compose
  3. MySQL을 위한 docker-compose
  4. 참고링크
728x90

서론

  • 도커를 사용해 MySQL을 띄우는 작업을 해볼 예정입니다.
  • docker-compse.yml을 이용해 협업자에게도 같은 환경을 제공해줄수 있다.
  • 도커를 사용하는 이유는 팀워크에서의 이점이 있기 때문이다. 프로그램은 버전에 따라 많은 차이점을 가질수가 있다. 다른 버전을 쓰면 다른 협업자에겐 오류가 나는 경우도 있다 보니, 그런 부분을 맞추기 위해 docker를 사용해 컨벤션을 지켜본다.

docker-compose

여러 개의 컨테이너로부터 이루어진 서비스를 구축, 실행하는 순서를 자동으로 하여, 관리를 간단히하는 기능이다.

compose 파일을 준비하여 커맨드를 1회 실행하는 것으로, 그 파일로부터 설정을 읽어들여 모든 컨테이너 서비스를 실행시키는 것이 가능하다.

MySQL을 위한 docker-compose

  • 파일명 : docker-compose.yml
version: '3'
services:
  mysql:
    image: mysql:8.0.33 # 2023. 04. 30 기준으로 가장 최신버전
    container_name: cat-picture-db
    ports:
      - 3306:3306 # HOST:CONTAINER
    environment:
      MYSQL_ROOT_PASSWORD: admin
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
    volumes:
      - /mysql/data:/var/lib/mysql
  • version: docker-compose의 버전
  • services: 도커 가상환경에서 설치한 services들의 목록
    • mysql: 우리가 설치한 서비스
      • image: 해당 서비스를 설치할 docker image
      • container_name: 해당 서비스가 뜰 컨테이너 이름
      • ports: 가상환경으로 사용할 ports // Host:Container
      • environment: 환경변수
        • cf) MYSQL의 환경변수는 해당 주소에서 확인이 가능. 여기선 필요한것만 이야기 드림.
        • MYSQL_ROOT_PASSWORD: 슈퍼유저 계정(root)에 설정된 암호, 이 변수는 필수값
        • MYSQL_DATABSE: 이미지 시작 시 생성할 데이터베이스 이름 지정, 이 변수는 선택값
        • MYSQL_USER, MYSQL_PASSWORD: 새 사용자를 만들고 새 사용자에 암호를 설정하는데 사용, 이 변수는 선택값
        • MYSQL_ALLOW_EMPTY_PASSWORD: 디폴트는 yes로 root 사용자의 빈 암호로 컨테이너를 시작할수 있습니다. 이 변수는 선택값
        • MYSQL_RANDOM_ROOT_PASSWORD: 이폴트는 yes로 루트 사용자에게 임의의 초기 암호를 생성, 이 변수는 선택값
        • MYSQL_ONETIME_PASSWORD: 초기화가 완료되면 루트 사용자를 만료된것으로 설정해 처음 로그인시 비밀번호 강제 변경하도록 함.
        • MYSQL_INITDB_SKIP_TZINFO: 함수에 필요한 시단 데이터를 자동으로 넣음.
  • command: 실행 후 같이 사용할 명령어
  • volumes: 내 컴퓨터 내의 해당 데이터를 저장할 공간.

참고링크

‘https://hub.docker.com/_/mysql

728x90
728x90
저작자표시 비영리 (새창열림)

'Backend > DataBase' 카테고리의 다른 글

[데이터베이스] 무결성이란? (with. 종류)  (0) 2025.04.20
[PostgreSQL] 데이터베이스의 모든 FK를 확인하는 방법  (0) 2024.04.07
SQL의 DDL, DML, DCL, TCL  (0) 2021.01.12
🤔 CASE WHEN ~ THEN ~ ELSE END  (0) 2021.01.11
ORACLE, MYSQL 날짜에서 각 값들을 추출하기 🧐  (0) 2021.01.07
  1. 서론
  2. docker-compose
  3. MySQL을 위한 docker-compose
  4. 참고링크
'Backend/DataBase' 카테고리의 다른 글
  • [데이터베이스] 무결성이란? (with. 종류)
  • [PostgreSQL] 데이터베이스의 모든 FK를 확인하는 방법
  • SQL의 DDL, DML, DCL, TCL
  • 🤔 CASE WHEN ~ THEN ~ ELSE END
Seyun(Marco)
Seyun(Marco)
개발, PO, PM, 기획과 관련된 서비스 관련 업무에 관심이 있습니다. 또한 성장,교육과 관련된 주제에 대해서도 관심이 많습니다. 티타임을 좋아하는 사람으로써, 혹시 티타임에 관심이 있으신 분은 ksy90101@gmail.com로 메일 보내주시면 감사하겠습니다 :) 과제를 제공해주고 피드백을 주는 서비스를 오픈하였습니다. 관심있으신 분들은 https://jobskill.notion.site/ 해당 사이트를 참고해주세요.
250x250
Seyun(Marco)
Enthusiastically, Steady, Slowly
Seyun(Marco)
전체
오늘
어제
  • 분류 전체보기 (258)
    • Common (31)
      • ComputerScience (10)
      • Web (9)
      • Git (1)
      • 세미나 (8)
      • Testing (3)
    • Backend (129)
      • Java (35)
      • Kotlin (3)
      • Spring (26)
      • Ruby (11)
      • RubyOnRails (17)
      • Python (1)
      • Django (3)
      • Infra (3)
      • DataBase (9)
      • SQL (21)
    • Frontend (30)
      • HTML&CSS (1)
      • JavaScript (16)
      • TypeScript (1)
      • Vue (5)
      • Nuxt.js (3)
      • React (4)
    • Book (30)
      • 이펙티브 자바 3판 (9)
    • Lecture (26)
      • [인프런] Vue.js 시작하기 - Age of .. (14)
      • [Tacademy] JPA 프로그래밍 기본기 다지.. (8)
    • 회고 (7)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • RESTful
  • Finalization
  • REST API
  • scanner
  • JUnit
  • JavaScriprt
  • 멱등성
  • rubyonrails
  • System.out.printlin
  • JAR index
  • 개발문화
  • ruby
  • java
  • MVC
  • IBM Plex Sans
  • locale
  • 우아콘
  • system.out.println
  • SCSS
  • Nuxt3

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
Seyun(Marco)
Docker를 이용해 MySQL 연결해보기.
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.