데이터 노트

docker로 mysql 설치하기 (MAC) 본문

Lab

docker로 mysql 설치하기 (MAC)

돌돌찐 2022. 8. 22. 17:29

이미 docker에서 한 번 mysql 설치를 진행한 적이 있지만,

왜인지 연동이 잘 되지 않는 것 같아서 새롭게 다시 복기할 겸 설치해보려 한다.

 

docker 설치하기

docker desktop 다운로드

 

나는 이미 설치가 되어있는 상태라 바로 다음 스텝으로 넘어간다.

(기존에 설치되어 있는 건 삭제했다.)

 

mysql image 리스트 확인, 가져오기

- docker images

: docker에서 이미 가져온 image 리스트 확인하기

$ docker images

REPOSITORY                       TAG       IMAGE ID       CREATED        SIZE
ubuntu_miniconda                 0.1       00e9e90394d7   2 weeks ago    1.44GB
ubuntu                           18.04     8d5df41c547b   2 weeks ago    63.1MB
mysql                            5.7       3147495b3a5c   3 weeks ago    431MB
ubuntu                           20.04     7118b00f1e09   4 weeks ago    3.05GB
ubuntu                           <none>    20fffa419e3a   2 months ago   72.8MB
jaspeen/oracle-xe-11g            latest    52fbd1fe2d7a   6 years ago    792MB
deepdiver/docker-oracle-xe-11g   latest    396b3e06a5dc   6 years ago    2.7GB

 

이미 이전에 mysql image를 가져온 적이 있어서 뜬다.

가져올 수 있는 image 리스트를 확인하려면 아래와 같이 입력하면 된다.

 

- docker search {이미지명}

$ docker search mysql

NAME                            DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
mysql                           MySQL is a widely used, open-source relation…   13050     [OK]
mariadb                         MariaDB Server is a high performing open sou…   4994      [OK]
phpmyadmin                      phpMyAdmin - A web interface for MySQL and M…   608       [OK]
percona                         Percona Server is a fork of the MySQL relati…   584       [OK]
bitnami/mysql                   Bitnami MySQL Docker Image                      75                   [OK]
linuxserver/mysql-workbench                                                     42
linuxserver/mysql               A Mysql container, brought to you by LinuxSe…   37
ubuntu/mysql                    MySQL open source fast, stable, multi-thread…   36
circleci/mysql                  MySQL is a widely used, open-source relation…   26
google/mysql                    MySQL server for Google Compute Engine          21                   [OK]
rapidfort/mysql                 RapidFort optimized, hardened image for MySQL   13
bitnami/mysqld-exporter                                                         3
ibmcom/mysql-s390x              Docker image for mysql-s390x                    2
newrelic/mysql-plugin           New Relic Plugin for monitoring MySQL databa…   1                    [OK]
vitess/mysqlctld                vitess/mysqlctld                                1                    [OK]

 

- docker pull {가져올 이미지명}

찾은 리스트 중 가져올 이미지명을 입력한다.

가져올 버전을 입력하지 않으면, 최신 버전을 가져온다. (버전을 설정할 경우 {가져올 이미지명}{:버전} 입력)

 

나는 이미 있으므로 이 단계도 패스.

mysql container 설치

컨테이너를 생성 및 실행한다.

$ docker run --name mysql -e MYSQL_ROOT_PASSWORD=1234 -p 3306:3306 {image ID}

 

--name : container name
-e : 환경 변수 설정(ROOT 계정 패스워드)
-p : 포트 설정

엄청 긴 텍스트가 실행되면 무사 완료!

 

$ docker ps

CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                               NAMES
1f5b5122f291   3147495b3a5c   "docker-entrypoint.s…"   6 minutes ago   Up 6 minutes   0.0.0.0:3306->3306/tcp, 33060/tcp   mysql

확인을 해보면, 현재 생성되어 실행되고 있는 걸 확인할 수 있다.

 

 

mysql 실행 확인하기

container에서 mysql까지 실행해보자.

docker ps에서 이미 mysql container가 실행되고 있었으므로, 바로 이하 코드 진행.

아예 껐다가 새로 시작할 경우에는 "docker start {container명}"을 입력해준 후 이하 코드로 진행한다.

 

$ docker exec -it mysql bash

mysql -u root -p
// 설정한 패스워드 값 입력

mysql>

 

mysql에 로그인된 것을 알 수 있다.