본문 바로가기
DataBase/Mysql

Docker에 MySQL 설치 방법

by 아우럼 2024. 8. 10.
반응형

요즘 많이 사용하는 Docker에 MySQL 설치 방법에 대해서 알아보겠습니다.

 

Docker에 MYSQL 설치

  • MYSQL images와 container 생성을 통해서 MYSQL database를 사용할 수 있습니다.
  • 설치하는 데 어려움이 없도록 명령어, 실행 결과를 소스 코드에 작성했으니 따라 해 보세요.
  • 설치가 완료됐다면 사용자를 추가하여 외부에서 접속하세요.

Docker에 MYSQL을 설치 순서

1. Linux에 Docker 설치 확인하세요.

aurumguide@ubuntu:~$ sudo docker -v
[sudo] password for aurumguide: 
Docker version 27.1.1, build 6312585

 

2. docker에 MYSQL 이미지를 pull 해주세요.

aurumguide@ubuntu:~$ sudo docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
d9a40b27c30f: Pull complete 
fe4b01031aab: Pull complete  
-- 생략 --

3. mysql 이미지를 pull 했다면, docker에서 mysql 이미지를 확인해 주세요.

aurumguide@ubuntu:~$ sudo docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
mysql         latest    7ce93a845a8a   5 days ago      586MB
hello-world   latest    d2c94e258dcb   15 months ago   13.3kB

4. docker에 MYSQL 컨테이너 생성하고 실행하세요.

 docker run  -d -p <호스트 포트>:<컨테이너 포트> -e <환경변수>  --name <컨테이너명> <이미지명> 

  • -d => detached모드로 컨테이너를 백그라운드에서 동작하는 애플리케이션으로써 실행하도록 설정합니다.
  • -p => 3300:3306  : 컨테이너의 포트를 호스트의 포트와 바인딩, 호스트의 3300번 포트를 컨테이너의 3306번 포트와 연결하겠다.  즉 외부에서 ip,3300 포트로 접속하시면 됩니다.
  •  -e => 컨테이너에서 사용할 환경변수 설정합니다. 이번에는 password를 123456789로 설정하세요.
  •  --name => aurum_docker_mysql  : 컨테이너의 이름을 aurum_docker_mysql 지정하겠다.
  •  mysql => 위에서 pull 했던 이미지 이름을 입력하세요.
aurumguide@ubuntu:~$ sudo docker run -d -p 3300:3306 -e MYSQL_ROOT_PASSWORD=123456789 --name aurum_docker_mysql mysql

 

5. 생성된 docker 컨테이너 리스트 출력하고 확인해 주세요.

aurumguide@ubuntu:~$ sudo docker ps -a
CONTAINER ID   IMAGE         COMMAND                  CREATED          STATUS                    PORTS                                                  NAMES
f78d646da790   mysql         "docker-entrypoint.s…"   35 seconds ago   Up 3 seconds              33060/tcp, 0.0.0.0:3300->3306/tcp, :::3300->3306/tcp   aurum_docker_mysql
5745b9cfe72e   hello-world   "/hello"                 15 hours ago     Exited (0) 15 hours ago                                                          determined_northcutt

6. docker에 생성된 MYSQL 컨테이너 접속 하세요.

docker exec -it <컨테이너명> bash

aurumguide@ubuntu:~$ sudo docker exec -it aurum_docker_mysql bash
bash-5.1# aurumguide@ubuntu:~$

7. 설치가 완료됐다면 MYSQL에 접속할 수 있습니다.

bash-5.1# aurumguide@ubuntu:~$ 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.37-0ubuntu0.22.04.3 (Ubuntu)

Copyright (c) 2000, 2024, 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.

 

8. 명령어를 보시고 여러분도 유저를 만들어 보세요.

aurumdocker 사용자에게 어디서든지 접속할 수(host) 있고 암호를 설정합니다.

mysql> CREATE USER 'aurumdocker'@'%' IDENTIFIED BY '123456789';
Query OK, 0 rows affected (0.02 sec)

 

aurumdocker 사용자에게 모든 Database 접속할 수 있도록 합니다.

mysql> GRANT ALL PRIVILEGES ON *.* TO 'aurumdocker'@'%';
Query OK, 0 rows affected (0.01 sec)

 

권한을 바로 적용합니다.

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

 

mysql Database로 이동합니다.

mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

 

user 테이블에서 host, user의 상태를 확인합니다.

mysql> select host,user from user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| %         | aurumdocker      |
| %         | root             |
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+
6 rows in set (0.00 sec)

 

 

반응형