[Docker 실습] Docker로 MySQL 실행시켜보기3
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 입문/실전’ 강의 참고