IT/etc

[Docker] 도커에서 MySQL 컨테이너 설치부터 접속까지

음료요정 2022. 3. 23. 01:26

도커가 설치 되어있다면, 아래 순서대로 MySQL 컨테이너를 설치하고 접속할수 있다. 

 

-- 최신버전 mysql 이미지 설치  ( 버전 명시를 안하면 최신버전으로 다운로드가 된다 )

docker pull mysql / $ docker pull mysql:8.0.22 

 

-- 다운로드한 docker 이미지를 확인한다

docker images 

docker images

 

컨테이너생성방법 1 : Shell 명령어 이용

2. MySQL Docker 컨테이너 생성 및 실행

$ docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=<password> -d -p 3306:3306 mysql:latest

-d: 백그라운드 모드
-p: 포트 포워딩 호스트:컨테이너
-e: 컨테이너 내에서 사용할 환경변수 설정
–name: 컨테이너 이름
-v: 마운트 호스트DIR:컨테이너DIR
도커 이미지 ID

 

 

3. Docker 컨테이너 리스트 출력

$ docker ps -a


➜  ~ docker ps -a
CONTAINER ID   IMAGE                           COMMAND                  CREATED         STATUS                    PORTS                                                  NAMES
7e880707ecc5   mysql:latest                    "docker-entrypoint.s…"   9 seconds ago   Up 8 seconds              0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql-container
dc0286d346b3   mysql:latest                    "docker-entrypoint.s…"   12 hours ago    Exited (1) 12 hours ago                                                          stoic_archimedes
4850c70d503e   docker/getting-started:latest   "/docker-entrypoint.…"   12 hours ago    Up 12 hours               80/tcp                                                 jovial_driscoll

4. MySQL 컨테이너 시작/중지/재시작 명령어

# 컨테이너 중지
docker stop mysql-container

# 컨테이너 시작
docker start mysql-container

# 컨테이너 재시작
docker restart mysql-container

 

5. MySQL 컨테이너 접속

➜  ~ docker exec -it mysql-container bash
root@7e880707ecc5:/# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.28 MySQL Community Server - GPL

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql>

 

 

컨테이너생성방법 2 : docker-compose.yml 파일 생성

1. docker-compose.yml파일 생성

# 파일 규격 버전
version: "3"
# 이 항목 밑에 실행하려는 컨테이너 들을 정의
services: 
  # 서비스 명
  db:
    # 사용할 이미지
    image: db2b31...
    # 컨테이너 이름 설정
    container_name: mysql-container-name
    # 접근 포트 설정 (컨테이너 외부:컨테이너 내부)
    ports:
      - "3306:3306"
    # -e 옵션 
    environment: 
      # MYSQL 패스워드 설정 옵션
      MYSQL_ROOT_PASSWORD: "1234"
    # 명령어 실행 (한글 인코딩 관련)
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
    volumes:
      # -v 옵션 (다렉토리 마운트 설정)
      - D:/docker/mysql/data:/var/lib/mysql

2. yml파일을 생성한 디렉토리에서 docker-compose 명령어를 실행

docker-compose up -d

3. 컨테이너 bash 접속 

docker exec -it mysql-container-name bash

-it: interactive terminal 모드

 

 

 

 

 

 

 

 

컨테이너 생성 후 계정을 만들면, MySQL Workbench GUI 에서 localhost 127.0.0.1로 접속이 가능하다.