본문 바로가기
OpenSource/Docker

[Docker] Docker-Compose로 MySQL 띄우기

by SooooooooS 2024. 2. 13.
728x90

※ 간단한 게시판 프로젝트 진행하기 위한 데이터베이스 준비 ※

1. docker-compose.yaml 파일 작성하기

version: '1'

services:
  db:
    image: mysql:8.0
    container_name: board-mysql
    restart: always
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: board
      MYSQL_USER: user
      MYSQL_PASSWORD: 123456
    volumes:
      - ./db_data:/var/lib/mysql
  • image
    • 사용할 도커 이미지를 지정
    • MySQL 8.0 이미지를 사용한다.
  • container_name
    • 컨테이너의 이름을 설정
    • board-mysql 로 설정
  • restart
    • 컨테이너가 종료될 때 항상 다시 시작하도록 설정
  • ports
    • 호스트의 3306 포트와 컨테이너의 3306 포트를 매핑
  • environment
    • 컨테이너에서 사용할 환경 변수를 설정
  • volumes
    • 데이터를 영속적으로 보존
    • ./db_data 디렉토리를 컨테이너 내의 /var/lib/mysql 경로에 연결

2. docker-compose.yaml 를 이용하여 띄우기

docker-compose.yaml 파일이 있는 위치에서 아래의 명령어를 입력하여 실행

docker-compose up

3. Docker Container에 접속하기

docker exec -it board-mysql mysql -uroot -p
  • -it
    • 상호적인(TTY를 사용하는) 모드로 실행
  • board-mysql
    • MySQL 컨테이너의 이름 또는 컨테이너 아이디를 작성할 수 있다.
    • container_name 속성에서 정의한 값
  • mysql -uroot -p
    • MySQL 클라이언트를 실행하고 root 사용자로 접속
    • -p 옵션은 비밀번호를 입력
    • root 비밀번호를 입력(MYSQL_ROOT_PASSWORD)

[참고] 유저로 접속하는 명령어

docker exec -it board-mysql mysql -uuser -p

이때 비밀번호는 사용자 비밀번호(MYSQL_PASSWORD)를 입력해야한다.

db 접속

 

database 확인

728x90

'OpenSource > Docker' 카테고리의 다른 글

[Docker] docker exec [container] bash -c [command]  (0) 2024.07.16
[Docker] mySQL 띄우기 (Mac)  (0) 2024.01.29