728x90
반응형
Docker에 MySQL 컨테이너 띄우기
1. Lightsail에서 MySQL을 연결할 서버 포트 열기
2. Docker Hub에서 MySQL Image 다운받기
https://hub.docker.com/_/mysql
docker pull mysql
- 다음 명령어로 MySQL Docker 이미지를 다운로드한다.
- 특정 버전을 적지 않으면, 최신 버전을 설치한다.
실습
ubuntu@ip-000-000-000-000:~$ docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
07bc88e18c4a: Pull complete
1a9c1668bf49: Pull complete
1021dda8eecf: Pull complete
fb61b56acac1: Pull complete
0bca83908a5b: Pull complete
165e8b3d37ca: Pull complete
3e1b086f1295: Pull complete
dba651668484: Pull complete
ed90f5355e12: Pull complete
0412f59ab2b5: Pull complete
Digest: sha256:aa0123456789asdfghjklxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest
ubuntu@ip-000-000-000-000:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest fcaaa1234xxx 5 weeks ago 578MB
3. 다운받은 Image로 MySQL Docker 컨테이너 생성하기
sudo docker run --name 컨테이너이름 -e MYSQL_ROOT_PASSWORD=비밀번호 -d -p 3306:3306 mysql:latest
사용된 옵션 의미 보기
더보기
- sudo docker run : Docker 컨테이너를 실행
- -d : 컨테이너를 백그라운드에서 실행 (detached 모드)
- -p : 포트 (외부포트 : Docker 내부포트)
- -p 3306:3306 : 호스트의 3306 포트를 컨테이너의 3306 포트로 연결.
- MySQL 서버에 호스트에서 접속할 수 있도록 한다.
- -e : 환경변수 (PASSWORD) 설정
- -e MYSQL_ROOT_PASSWORD=P@ssw0rd : 테이너의 환경 변수를 설정
- MySQL 루트 사용자의 비밀번호를 설정한다.
- -name : 생성할 컨테이너 이름
- -name mysql-container : 컨테이너에 이름을 지정 ("mysql-container"라는 이름을 사용)
- mysql:latest : 실행할 도커 이미지의 이름
- 여러 버전의 mysql이 있다면, 'Tag'로 구분할 수 있다.
실습
ubuntu@ip-000-000-000:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ubuntu@ip-000-000-000:~$ docker run --name mysql-server -e MYSQL_ROOT_PASSWORD=pomoro-d0@0517 -d -p 3306:3306 mysql:latest
1234567asdfghj??????????????????????????????????????????????
Docker에서 MySQL로 접속하기
4. Docker MySQL 컨테이너에 접속하기
sudo docker exec -it ${mysql-container 이름} bash
- root@{containerName}:/# 으로 진입한다.
5. MySQL에 관리자로 접속하기
mysql -u root -p
- MySQL 루트로 접속
실습
ubuntu@ip-000-000-000:~$ docker exec -it mysql-server bash
bash-5.1# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.4.0 MySQL Community Server - GPL
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.
mysql>
- Enter password: 에 비밀번호 입력 (입력이 보이지 않음)
- 명령어를 입력한 후, 패스워드를 입력하면 mysql> 로 진입한 것을 확인할 수 있다.
6. 현재 Database 리스트 확인하기
mysql> SHOW DATABASES;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
위와 같이 자동으로 생성된 4개의 Database가 보인다. MySQL Container는 생성하였지만 Database를 만들지 않았다.
우리가 직접 사용할 새로운 Database를 생성해보도록 하자.
7. 새로운 Database 생성하기
CREATE DATABASE [DB이름]
create database [DB이름];
실습
mysql> CREATE DATABASE pomorodo;
Query OK, 1 row affected (0.01 sec)
- 'pomorodo'라는 이름을 가진 Database를 생성한다.
- 추후 프로젝트의 application.yml에서 Database 환경설정을 변경해야한다.
8. 생성된 새로운 DB 확인하기
mysql> SHOW DATABASES;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| pomorodo |
| sys |
+--------------------+
5 rows in set (0.00 sec)
실습
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.01 sec)
mysql> CREATE DATABASE pomorodo;
Query OK, 1 row affected (0.00 sec)
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| pomorodo |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql>
728x90
반응형
'내맘대로 개발 일기 > 뽀모로 Do!' 카테고리의 다른 글
[인프라 구축] 가비아 도메인 구매하기 (0) | 2024.06.08 |
---|---|
[인프라 구축] MySQL 새로운 계정 만들기 (0) | 2024.06.07 |
[인프라 구축] 현재 사용자에게 Docker 접근 권한 부여하기 (0) | 2024.06.05 |
[인프라 구축] Lightsail 인스턴스에 SSH로 액세스 (0) | 2024.06.05 |
[인프라 구축] Amazon Lightsail, Networking 설정 (0) | 2024.06.05 |