DevOps/Docker

[Docker 실습] Docker로 MySQL 실행시켜보기3

배세 2024. 6. 29. 19:13

Docker로 MySQL 실행시켜보기_Volume을 사용해보자.


mysql 에 대한 정보를 호스트의 일부 공간에 저장해보자. 

* mysql 이 이미 실행중이어서 오류가 날 경우

sudo lsof -i:3306 

sudo kill 'PID'

 

1. mysql 데이터를 저장하고자 하는 호스트 경로로 들어가보자. 

폴더 만드는 리눅스 명령어이다. 참고하자. 

   

2. 데이터를 저장하고자 하는 호스트의 경로와 mysql 이 저장되는 경로를 적어준다.

 

docker run -e MYSQL_ROOT_PASSWORD=1234 -d -p 3306:3306 -v /Users/baeseeun/Develop/docker-mysql/mysql_data:/val/lib/mysql mysql 

 

3. docker 로 mysql에 접속해서 데이터베이스를 생성해보자.

docker exec -it 63d bash

mysql -u root -p

create database mydb;

 

 

4. 컨테이너를 지워보자.

docker rm -f 63d

 

5. 컨테이너를 다시 생성해보자.

docker run -e MYSQL_ROOT_PASSWORD=1234 -d -p 3306:3306 -v /Users/baeseeun/Develop/docker-mysql/mysql_data:/val/lib/mysql mysql

 

아까 생성한 database가 남아있는 것을 확인할 수 있다.

 

6. 다시 컨테이너를 삭제하고,  비밀번호를 변경해서 컨테이너를 생성해보자. 

비밀번호를 1234에서 12345로 변경했다.

 

7. mysql 에 접속해보자. 

변경된 비밀번호로 접속되지 않는 것을 확인할 수 있다. 

=> 호스트의 저장공간에 기존에 데이터가 남아 있어서 새로운 비밀번호로 덮어씌울 수 없기 때문에 기존 비밀번호로 접속이 되는 것

즉, Volume으로 설정해준 폴더에 이미 비밀번호 정보가 저장되었기 때문이다.

 

8. 해결방법

mysql 에 접속해서 비밀번호를 바꾸는 방법, volume으로 설정해준 폴더를 지우고 mysql을 띄우는 방법 이 있다. 

 

 

* Inflearn(인프런) ‘비전공자도 이해할 수 있는 Docker 입문/실전’ 강의 참고