카이도스의 Tech Blog
Docker - Mysql 설치 본문
728x90
반응형
# 볼륨 생성
sudo docker volume create mysql-data
sudo docker volume ls
DRIVER VOLUME NAME
local a210b1f888dd5a24a6d0617f8b9c9733fc8345741a9f8374235cf93d2b973a25
local cafd5373fadda57ac195dbd0146b161091bc0d66113706ffbc65ea640c924fb2
local mysql-data
# mysql 컨테이너 생성 : 도커 자체 볼륨 활용
sudo docker run -it -d --name=mysql-volume \
-e MYSQL_ROOT_PASSWORD=xgtest!# \
-e MYSQL_DATABASE=test \
-v mysql-data:/var/lib/mysql \
mysql:latest
# mysql 컨테이너 접속
sudo docker exec -it mysql-volume bash
## 아래부터는 mysql 컨테이너 내부에서 실행
------------------------------------
mysql -uroot -pxgtest!#
# 데이터베이스(=스키마) 확인
SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
# simple 데이터베이스 선택 하기
USE test;
# 테이블 생성
CREATE TABLE mytable (c1 int, c2 char);
# 테이블 확인
SHOW TABLES;
+----------------+
| Tables_in_test |
+----------------+
| mytable |
+----------------+
# 테이블 필드와 타입 등 정보 확인
DESC test.mytable;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| c1 | int | YES | | NULL | |
| c2 | char(1) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
# 행(=데이터=레코드) 1개 넣기
INSERT INTO mytable VALUES (1, 'a');
# 조회
SELECT * FROM mytable;
+------+------+
| c1 | c2 |
+------+------+
| 1 | a |
+------+------+
1 row in set (0.00 sec)
# 행 넣기
INSERT INTO mytable VALUES (2, 'b');
SELECT * FROM mytable;
+------+------+
| c1 | c2 |
+------+------+
| 1 | a |
| 2 | b |
+------+------+
2 rows in set (0.00 sec)
------------------------------------
# 도커 볼륨 정보 확인
sudo docker inspect --format="{{ .Mountpoint }}" mysql-data
/data/docker/volumes/mysql-data/_data
# 호스트 경로에서 확인
sudo tree /data/docker/volumes/mysql-data/_data -L 1
├── auto.cnf
├── binlog.000001
├── binlog.000002
├── binlog.index
├── ca-key.pem
├── ca.pem
├── client-cert.pem
├── client-key.pem
├── e18d7832f827.err
├── #ib_16384_0.dblwr
├── #ib_16384_1.dblwr
├── ib_buffer_pool
├── ibdata1
├── ibtmp1
├── #innodb_redo
├── #innodb_temp
├── mysql
├── mysql.ibd
├── mysql.sock -> /var/run/mysqld/mysqld.sock
├── performance_schema
├── private_key.pem
├── public_key.pem
├── server-cert.pem
├── server-key.pem
├── sys
├── test
├── undo_001
└── undo_002
sudo ls -al /data/docker/volumes/mysql-data/_data/test/
total 120
drwxr-x--- 2 systemd-coredump systemd-coredump 25 Mar 7 12:59 .
drwxrwxrwt 8 systemd-coredump systemd-coredump 4096 Mar 7 12:58 ..
-rw-r----- 1 systemd-coredump systemd-coredump 114688 Mar 7 13:00 mytable.ibd
- 장애 재현 : 현재 컨테이너를 강제로 삭제 후 신규 컨테이너 재실행 시 도커 볼륨 연결 후 확인
# 컨테이너 삭제
sudo docker rm -f mysql-volume
sudo docker ps
sudo ls -al /data/docker/volumes/mysql-data/_data/test/
# mysql 컨테이너 다시 생성 : 기존 도커 자체 볼륨 연결
sudo docker run -it -d --name=mysql-volume \
-e MYSQL_ROOT_PASSWORD=xgtest \
-e MYSQL_DATABASE=test \
-v mysql-data:/var/lib/mysql \
mysql:latest
# mysql 정보 확인
sudo docker exec -it mysql-volume mysql -uroot -pxgtest -e status
# mysql 데이터 확인
sudo docker exec -it mysql-volume mysql -uroot -pxgtest -e "show databases;"
sudo docker exec -it mysql-volume mysql -uroot -pxgtest -e "SELECT * FROM test.mytable;"
# 실습 자원 삭제
sudo docker rm -f mysql-volume
sudo docker volume rm mysql-data
728x90
반응형
'Docker' 카테고리의 다른 글
Docker - Nginx 설치 (0) | 2024.03.09 |
---|---|
Docker - Postgresql 설치 (0) | 2024.03.09 |
Docker - nGrinder 설치2(서버 다른 서버) (0) | 2024.03.09 |
Docker - nGrinder 설치1(단일 서버) (0) | 2024.03.09 |
Docker 설치 (0) | 2024.03.09 |
Comments