1. MariaDB 데이터베이스 덤프를 생성
mysqldump 명령어를 통해 데이터베이스 백업을 생선한다
# 단일 데이터베이스 백업
mysqldump -u root -p [데이터베이스이름] > [파일이름].sql
# 전체 백업
mariadb-dump -u [아이디] -p[패스워드] --all-databases > [백업파일명].sql
그 뒤 MariaDB 환경변수도 확인하여 향후 설정을 대비한다.
2. 도커 이미지 생성하기
MariaDB 데이터를 포함한 Docker 이미지를 생성한다
FROM mariadb:10.11 # MariaDB 버전 명시
ENV MYSQL_ROOT_PASSWORD {비밀번호} # 루트 비밀번호 설정
ENV MYSQL_DATABASE {DB명} # 생성할 DB 이름
COPY ./{DB명}_all_databases.sql /docker-entrypoint-initdb.d/
EXPOSE 3306 # MariaDB 기본 포트
CMD ["mysqld", "--user=mysql"] # 컨테이너 시작 시 MariaDB 실행
3. 도커 이미지 빌드
Docker를 실행한 뒤, 다음의 명령어로 이미지를 빌드한다
docker build -t {도커이미지이름} -f {작성한 도커파일의 이름} .
4. 도커 이미지 공유
파일로 공유할 수도 있고, 도커 허브로 공유할 수도 있다
우선 파일(.tar)로 공유한다
docker save -o {도커이미지이름}.tar {도커이미지이름}
만약 Docker 허브로 공유하고 싶다면 아래와 같이 한다
docker login
docker tag {이름} {Docker Hub 사용자명}/{레포지토리명}:latest
docker push {Docker Hub 사용자명}/{레포지토리명}:latest
5. 공유받은 이미지 로딩하기
기존에 로컬로 사용중인 3306이 있다면 종료시킨다 ( netstat -a -o로 확인)
docker load -i {이름}.tar
docker run -d --name {컨테이너명} -p 3306:3306 {이름}:latest
6. 확인하기
공유받은 도커 컨테이너 내의 mariaDB 데이터를 조회한다
docker exec -it {컨테이너명} mysql -u root -p
Show DATABASES; // 등록된 데이터베이스 확인
use {데이터베이스명};
show tables; // 미리 생성해놓은 table들 확인
select * From users; // 미리 생성해놓은 user 확인