홈>
지난 며칠 동안 Docker를 사용하고 있었고 곧 Python-MySQL 웹 응용 프로그램을 Docker로 옮기기를 희망합니다.
의 결론은 Docker 볼륨을 사용해야하고 최근에 엉망이되었다는 것입니다.
에서 직접 볼륨을 생성 할 수 있습니다
$ docker volume create my-vol
도커 실행 호출에서 존재하지 않는 볼륨을 참조하여 간접적으로도 Dockerfile의 COPY 호출을 통해 파일을 복사하지 않고 이러한 볼륨을 .sql 데이터베이스 파일로 채우는 방법을 알 수 없습니다.
나는 .sql 파일을 포함하는 디렉토리 내에 볼륨을 직접 작성하고 (위에서 언급 한 첫 번째 방법) 내 'docker run'호출에서 .sql 파일을 포함하는 디렉토리를 마운트하려고 시도했습니다. 컨테이너 (컨테이너 내부에서 bash 셸을 탐색하여 보았지만) 데이터베이스 포함 mariadb 컨테이너에 연결하는 mariadb 컨테이너를 실행할 때 (mariadb docker readme 파일에서 제안한대로) 표준 데이터베이스 (information_schema) 만 있습니다. , mysql, performance_schema)
기존의 .sql 데이터베이스를 포함하는 볼륨을 어떻게 만들 수 있습니까?
-
답변 # 1
관련 자료
- python - Docker를 사용하여 웹 애플리케이션 빌드 오류
- python - 파이 게임을 사용하여 슬라이더 만들기
- Python - 파이썬 - 사전 항목을 만들 때를 제외하고 try /를 사용하여 for 루프를 제어하는 방법
- Termux를 사용하여 Docker를 설치할 수 있습니까?
- javascript - JQUERY, PHP 및 AJAX를 사용하여 HTML 테이블 채우기
- PHP를 사용하여 CSV 파일을 만드는 데 잘못된 행이 있습니다
- javascript - 객체 생성을 위해 forEach 대신 map () 사용
- pip - ctypes를 사용하여 파이썬 모듈 만들기
- firewalld와 함께 Docker 사용
- android - 컨테이너를 사용하여 카테고리 목록 생성
- bash - 스크립트 내에서 실행되는 Docker와 함께 시간 초과 사용
- spring boot - Java를 사용하여 Docker 컨테이너에서 파일을 읽는 방법
- arrays - 자바에서 객체 생성 및 메소드 호출을위한 변수 사용
- Microsoft Graph API (PHP)를 사용하여 사용자 만들기
- pandas - keras/python 및 CSV 파일을 사용하여 순차 모델을 생성하지만 정확도가 떨어짐
- OpenCV 및 Python에서 범위 슬라이더 (트랙 바)를 사용하여 마스크 이미지 만들기
관련 질문
- mysql - MariaDB InnoDB는 시간 초과시 롤백하지 않습니다
- mysql - 최신 이전 유효 날짜 하위 쿼리에 대한 데이터
- mysql - 내부 조인으로 집계 동작을 설명 할 수 있습니까?
- mariadb - mysql 데이터 정렬의 '정렬'은 무엇입니까?
- mysql - Except 하위 쿼리의 행 수 COUNT
- mysql - 고유 한 쌍을 계산하지만 해당 개수를 SQL의 모든 항목에 적용 (중복을 제거하지 않음)
- mariadb와 mysql의 행 번호 매기기 차이
- Docker mysql은 내부에서 로그인 할 수 있지만 외부에서는 로그인 할 수 없습니다
- 웹앱 컨테이너가 동일한 Docker 내에서 mysql 컨테이너에 액세스하는 이유가 시간 초과 오류를보고하는 이유
- mysql - MariaDB 하위 쿼리는 전체 행을 사용합니다
도커 컨테이너에서 mariadb로 작업 할 때 이미지는
.sql
실행을 지원합니다. 컨테이너의 첫 시작의 일부로 파일. 이를 통해 데이터베이스에 액세스하기 전에 데이터를 데이터베이스에 푸시 할 수 있습니다.mariadb 문서에서 :
와이즈 비즈 와이즈 비즈이것은 컨테이너에 데이터를 주입하려는 경우 처음 시작할 때를 의미합니다. 당신의
/docker-entrypoint-initdb.d
에서MYSQL_DATABASE
Dockerfile
경로COPY
에서 컨테이너에 파일 -환경 변수.sql
에 지정한 데이터베이스에서 호출됩니다. .이것처럼 :
그런 다음 :
데이터베이스 스토리지 관리 방법에 대한 의문이 있습니다. 기본적으로 여기에는 두 가지 옵션이 있습니다.
<올>mariadb가 데이터베이스를 저장하는 호스트에 볼륨 바인딩을 작성하십시오. 그러면 호스트 컴퓨터에서 데이터베이스 저장소 파일에 쉽게 액세스 할 수 있습니다.
도커 실행 예제 :
도커 볼륨을 만들어 컨테이너의 저장 위치에 바인딩하십시오. 이것은 docker가 관리하는 볼륨입니다. 이 볼륨은 컨테이너를 다시 시작할 때까지 데이터를 유지합니다.
또한 mariadb 도커 이미지에 대한 문서에서도 다루고 있습니다. 이 이미지를 사용하려는 경우 위에서 아래로 읽는 것이 좋습니다.
docker run -v /my/own/datadir:/var/lib/mysql mariadb