반응형
요즘 많이 사용하는 Docker에 MySQL 설치 방법에 대해서 알아보겠습니다.
Docker에 MYSQL 설치
- MYSQL images와 container 생성을 통해서 MYSQL database를 사용할 수 있습니다.
- 설치하는 데 어려움이 없도록 명령어, 실행 결과를 소스 코드에 작성했으니 따라 해 보세요.
- 설치가 완료됐다면 사용자를 추가하여 외부에서 접속하세요.
Docker에 MYSQL을 설치 순서
1. Linux에 Docker 설치 확인하세요.
- 만약 Docker에 설치하지 않았다면 Docker 설치하는 방법을 참고하세요.
- Docker 설치. https://aurumguide.tistory.com/89
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)
반응형