IT지식/도커(Docker) 사용법

도커(Docker)로 MySQL 실행하기

맨땅에헤딩개발자 2025. 2. 10. 23:16

hub.docker.com 에 접속해 mysql을 검색해보시면

 

이미지 사용법에 대해 자세히 나와있는데 한번 읽어보는 것을 추천드립니다.

 

위의 그림과 같이

shell에 명령어를 입력합니다.

docker run -e MYSQL_ROOT_PASSWORD="사용할 패스워드" -p 3306:3306 -d mysql

mysql 이 없으셨던 분들은 다운로드와 함께 image가 생성되었을 겁니다.

 

이제 컨테이너 내부로 접속해서 PASSWORD설정이 제대로 되었나 확인해봅니다.

docker exec -it cb0 bash 로 접속 후

echo $MYSQL_ROOT_PASSWORD 를 입력하시면 아까 설정했던 비밀번호가 나오는 걸 확인하실 수 있습니다.

 

마지막으로 mysql 접속테스트를 해볼건데 저는 mysql의 workbench를 활용해서 테스트를 해보았습니다.

 

접속 SUCCESS가 뜬 것을 확인하였습니다.

이로써 DOCKER로 MYSQL연동에 대해 알아보았습니다.

하지만 컨테이너 특성상 컨테이너가 종료되면 컨테이너 내부의 데이터도 모두 날라가는 문제가 발생하는데

 

이를 해결하기 위한 도커만의 특징인 볼륨에 대해 알고가셔야합니다.

https://steady-snb.tistory.com/73

 

도커(Docker) 볼륨의 정의와 사용법

우선 도커의 볼륨에 대해 알아보기 전에컨테이너의 특성과 문제점에 대해 알아보겠습니다.  컨테이너의 특성과 문제점 도커는 컨테이너를 활용해 특정 프로그램을 실행할 수 있습니다.이 프

steady-snb.tistory.com

위 글을 참조하여 도커의 볼륨에 대한 간략한 정의를 잡으시고

 

 

위의 명령어와 같이 mysql을 실행시켜줍니다.

 

docker exec -it 컨테이너ID bash를 입력하여 컨테이너에 접속 후

mysql -u root -p를 입력하여 mysql 에 접속하겠습니다.

Enter password:에는 아까 자신이 설정했던 패스워드를 입력해주도록합니다.

패스워드 입력 후 엔터를 누르시면 위의 그림과 같이 mysql에 접속이 된 것을 확인하실 수 있습니다.

 

데이터 베이스 접속 후 

create database mydb;라는 명령어로 데이터 베이스를 생성 후

show databases; 를 입력하여 생성된 db를 확인해줍니다.

 

이후 exite를 하여 종료 후

docker rm -f 컨테이너ID를 입력하여 아까 DB생성했었던 컨테이너를 강제 삭제합니다.

 

삭제 후 아까했던 방법대로 다시 컨테이너를 생성 후

mysql에 접속해서 show databases;를 입력해보시면

일전에 생성했던 mydb라는 데이터베이스가 사라진 것을 확인하실 수 있습니다.

이러한 현상을 방지하고자 볼륨을 사용하여 mysql을 실행하셔야합니다.

 

먼저 data를 백업시켜둘 공간을 생성합니다.

저는 c드라이브에 datastore이라는 폴더에 저장하도록 하겠습니다.

cd C:\datastore 명령어를 입력하여 저장할 공간으로 이동해 줍니다.

docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -v {호스트의 절대경로}/mysql_data:/var/lib/mysql -d mysql

-v 부터는 볼륨을 사용하겠다라는 명령어입니다. 위의 명령어를 참고하여 명령어를 입력해줍니다.

 

 

컨테이너 실행 후 실행된 컨테이너 내부로 접속하여 mysql에 접속해줍니다.

 

아까와 같이 mydb라는 데이터베이스를 생성해줍니다.

 

데이터 베이스를 생성 후 exit로 나와 컨테이너를 삭제해줍니다.

 

 

컨테이너 삭제 확인 후 아까와 같은 방법으로 볼륨으로 mysql을 생성하여 접속 후

show databases;를 입력해보시면 컨테이너 삭제 전에 생성했던 mydb를 볼 수 있습니다.

이처럼 볼륨이라는 것은 호스트 공간을 공유하여 사용하기 때문에

컨테이너가 삭제되도 데이터를 영속적으로 보존할 수 있습니다.

 

 

 

출처 - 인프런 비전공자도 이해할 수 있는 Docker 입문/실전 중..

https://www.inflearn.com/course/%EB%B9%84%EC%A0%84%EA%B3%B5%EC%9E%90-docker-%EC%9E%85%EB%AC%B8-%EC%8B%A4%EC%A0%84

 

비전공자도 이해할 수 있는 Docker 입문/실전 강의 | JSCODE 박재성 - 인프런

JSCODE 박재성 | , 🤬 에라이, 못 해먹겠네!비전공자로 개발을 시작해 여러 회사에서 CTO로 활동하다가, 현재는 교육자로 활동하고 있는 박재성이라고 합니다. 저도 비전공자로 개발을 시작해 서버

www.inflearn.com