작성
·
88
·
수정됨
0
백업은 안하려고 한참 헤메다, 결국 백업으로 해결했네요..ㅎ..
환경: window pc에 mariadb client 버전을 설치함
dump 생성
client 버전이기 떄문에, “mariadb prompt” 를 실행해서 아래의 명령어 실행
(cmd에서 mariadb, mysql 명령어 동작 안함)
# 생성할 위치로 이동하시거나, 덤프 생성할때 경로 작성하시요.
cd "어느 경로"/docker_file
# 덤프 생성
mysqldump -u root -p --all-databases > all.sql
Dockerfile 생성
# Docker Hub에서 공식 MariaDB 이미지 사용
FROM mariadb:latest
# 초기화 시 자동 실행될 SQL 복사
COPY ./all.sql /docker-entrypoint-initdb.d/
# 포트 개방
EXPOSE 3306
이미지 생성 및 컨테이너 실행
docker build -t [당신의 게정은?]/mariadb:1.0 .
docker run -d \\
-p 13306:3306 \\
--name mariadb \\
--network ecommerce-network \\
-e MARIADB_ROOT_PASSWORD=[당신의 root 비번]\\
kimjinwon1432/mariadb:1.0
=============== 추가 ==============
강사님께서 알려주신 방법으로 진행해봤어요.
일단, 제 pc의 mariadb 설치경로가 "C:\Program Files" 였기 때문에, mariadb폴더 내의 data 폴더와 그 하위 파일 및 디렉터리를 C: 밑에 우리가 사용하는 docker_file 폴더에 넣었습니다
* Program Files를 경로로 잡으시면 13에러 코드가 발생합니다. 이는 권한 관련 문제이므로 cli에서 사용하시는 계정에 대해서 mariadb 폴더 내부에 권한을 주셔도 소용이 없어요.
* 이 과정은 이전에 설치한 mariadb 이미지가 있으면 삭제?하거나 이미지의 이름을 변경해서 진행하세요.(전 삭제함)
* 제 pc의 mariadb 의 버전이 11.4.2여서, docker에서 사용할 수 있는 가장 근접한 버전으로 진행했습니다.
docker run -d -p 13306:3306 --network ecommerce-network \
-e MARIADB_ROOT_PASSWORD=[비번] \
--name mariadb -v "C:\study\SpringCloud\docker_files\data:/var/lib/mysql" \
mariadb:11.4.7
이렇게 하시면 docker exec -it ~~~ /bin/bash를 통해서 db에 접속 후 데이터베이스를 확인하면 로컬에서 작업했던 db의 데이터가 docker로 전해진 것을 확인 할 수 있어요.
답변 2
0
안녕하세요, 이도원입니다.
Docke로 mariadb를 실행할 때, 초기 데이터를 지정하는 부분에 대해서 작업 중이신 것 같습니다.
작업 하신 것처럼, sql 로 덤프 데이터를 준비하신 다음에 진행하시거나, 볼륨 마운트를 통해 Host PC에 있는 데이터를 지정하는 방법도 있을 것 같습니다. DB 파일을 아래와 같은 명령어로 지정하실 수도 있습니다.
docker run -d -v /path/on/host:/var/lib/mysql mariadb:latest
정보 공유 감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
김진원님께서 Docker를 활용하여 MariaDB를 설정하는 과정에서 여러 어려움을 겪으신 것 같습니다. 특히, 백업 방식을 통해 문제를 해결하셨다고 하셨는데, 이를 통해 MariaDB를 Docker 환경에 잘 설정하신 듯합니다. 아래에 지원이 될 만한 추가 자료를 제공하겠습니다.
MariaDB와 Docker를 활용하면서 백업 및 실행 과정에서 중요한 부분을 몇 가지 정리하겠습니다:
백업 생성 및 복구:
mysqldump
명령어를 사용하여 백업 파일을 생성하고, 이를 Docker 이미지에 포함하면 초기화 과정에서 데이터를 자동으로 복구할 수 있습니다. 이는 김진원님이 작성하신 Dockerfile에서 COPY ./all.sql /docker-entrypoint-initdb.d/
부분으로 처리되었습니다.Docker 환경에서 MariaDB 실행:
docker build
와 docker run
명령어를 사용하여 MariaDB 컨테이너를 구축할 수 있습니다. 환경 변수 -e MARIADB_ROOT_PASSWORD
를 통해 root의 비밀번호를 설정하는 것은 매우 중요하죠.추가로, Docker와 MariaDB 관련하여 동일한 주제의 문제를 겪는 학습자들에게 도움이 될 만한 관련 게시물들을 찾아보았습니다:
Docker로 mariadb 배포 시 문제 발생: 이 게시물은 포트 충돌 문제 등 MariaDB 컨테이너 실행 시 발생할 수 있는 일반적인 오류에 대한 해결책을 제시합니다.
안녕하세요! 질문이 있습니다. (mariadb 관련): Dockerfile 설정 문제로 인해 MariaDB 컨테이너가 예상하지 못한 상태가 될 때의 해결 방법을 제공합니다.
이 정보가 김진원님의 Docker MariaDB 환경 설정에 도움이 되길 바라며, 추가적인 질문이 있다면 언제든지 말씀해 주세요. 궁금한 점이 있을 때 지식을 나누는 것은 언제나 환영입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.