우노
[Docker] MySQL Container 실행 시 host db 볼륨 마운팅하기 본문
- 테스트를 진행할 서버는 EC2이며, Docker가 설치되어있다고 가정하겠습니다.
db 디렉토리 생성
서버에 db 디렉토리 생성
mkdir mysql-init-files
로컬에 있는 db 파일을 서버의 db 디렉토리로 복사
scp -i [pem파일경로] [로컬 파일 경로] [ec2-user계정명]@[ec2 instance의 public DNS]:~/[서버 파일 경로]
MySQL Container 생성 및 db 볼륨 마운트
MySQL 이미지 다운로드
docker pull mysql
컨테이너 생성 시 서버의 db 디렉토리와 볼륨 마운트
docker run -d -p 3306:3306 --name mysql-container -e MYSQL_ROOT_PASSWORD=1234 -v ~/mysql-init-files/:/docker-entrypoint-initdb.d/ --restart="always" mysql
- -d
- 백그라운드모드로 실행
- -p 3306:3306
- host의 3306 포트를 container의 3306 포트로 매핑한다는 뜻이다.
- --name mysql-container
- 컨테이너 이름을 지정한다.
- -e MYSQL_ROOT_PASSWORD=1234
- root 비밀번호를 생성한다.
- mysql 컨테이너 내부에서 mysql에 접속할 때 사용된다.
- 이 단계는 필수이므로 요구 조건을 만족하는 비밀번호를 입력 할 수 있도록 한다.
- -v ~/mysql-init-files/:/docker-entrypoint-initdb.d/
- 호스트의 ~/mysql-init-files/ 디렉토리를 컨테이너의 /docker-entrypoint-initdb.d/ 디렉토리로 마운트한다.
- /docker-entrypoint-initdb.d/ 안의 파일들은 컨테이너 실행 시 mysql로 dump 된다.
- --restart="always"
- mysql로 db가 dump 되면 컨테이너가 한 번 종료되기 때문에
- 컨테이너가 종료되면 다시 실행시켜준다.
- -d
db dump 결과 확인
kleagueDB-SchemaData.sql 확인
docker exec -it mysql-container bash mysql -u root -p show databases;
'DevOps > Docker' 카테고리의 다른 글
[Docker] Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? (0) | 2021.08.19 |
---|---|
[Docker] Docker 를 이용한 Jupyter Notebook 사용 (0) | 2021.07.17 |
[Docker] Docker를 이용한 MySQL 설치 및 접속 (0) | 2020.11.08 |
[Docker] Dockerfile 개념 및 작성법 (0) | 2020.10.06 |
[Docker] AWS EC2에서 Docker를 이용한 Nodejs 웹서버 구축 (0) | 2020.10.04 |
Comments