maria가 있는 도커 컨테이너에 SQL 덤프 파일 설치DB
도커의 기본을 배우고 있을 뿐인데, 로컬 시스템에서 SQL 파일을 Import하는 데 골머리를 앓고 있습니다.Windows 10을 사용하고 있으며 도커 컨테이너가 공유 드라이브에 액세스하도록 허용했습니다.도커 허브에서 가져온 마리아 DB의 기본 이미지로 Import하고 싶은 SQL 파일이 D에 있습니다.
이미지에 그 sql 파일을 설치하는 명령어를 찾아 컨테이너 sql 명령어프롬프트 내부에서 이미지를 직접 Import하려고 했지만 파일 오픈에러가 발생했습니다.
다음은 제가 시도한 두 가지 방법인데, sql 덤프를 어디에 저장하고 어떻게 Import합니까?
mysql 명령줄을 통해 메서드1이 시행되었습니다.
winpty docker run -it --link *some-mariadb*:mysql --rm mariadb sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
그리고나서
use *database-created* // previously created
그리고나서
source d:/sql_dump_file.sql
방법 2
docker exec -i my-new-database mysql -uroot -pnew-db-password --force < d:/sql_dump_file.sql
2016년 5월 12일 갱신
그래서 놀던 실망스러운 주말이 지나고 나서.D: 드라이브를 작동시킬 때 디버깅할 수 없는 알 수 없는 문제가 있는 것 같아서 현재 드라이브를 C: 드라이브로 변경했습니다.
그런 다음 컨테이너에 마운트된 볼륨을 확인하기 위해 inspect 명령을 찾았습니다.다음과 같은 것이 있습니다만, 파일이 존재하지 않기 때문에 SQL로 Import할 수 없습니다만, 도커에 SQL 파일이 있고 마운트되어 있다고 명시되어 있습니다.C의 메인 디렉토리에 map_me라는 폴더를 만들었습니다.
docker inspect dbcontainer
"Mounts":
[
{
"Source": "/map_me",
"Destination": "/docker-entrypoint-initdb.d/sl_dump_file.sql",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
]
다음 사항을 권장합니다.
마운트:sql_dump_file.sql
에/docker-entrypoint-initdb.d/
컨테이너를 생성할 때 사용합니다.공식 MariaDB 이미지는 시작 시 복원됩니다.
docker run -d --name <containername> -v d:/sql_dump_file.sql:/docker-entrypoint-initdb.d/sl_dump_file.sql <environment_variables> <imagename> <startup commands>
그래서 몇 가지 조정과 이해를 거친 후 테스트를 거쳐 결론에 도달했습니다. 도커 구성이 가장 좋은 방법입니다.따라서 첫 번째 폴더에는 설정을 수행하는 my.cnf 파일이 포함되어 있습니다.다음으로 @Farhad가 식별한 다른 폴더는 .sql 파일을 삽입하기 위해 사용됩니다.
version: "2"
services:
mariadb_a:
image: mariadb:latest
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=111111
volumes:
- c:/some_folder:/etc/mysql/conf.d
- c:/some_other_folder:/docker-entrypoint-initdb.d
언급URL : https://stackoverflow.com/questions/40925822/install-an-sql-dump-file-to-a-docker-container-with-mariadb
'programing' 카테고리의 다른 글
PHP 함수 오버로드 (0) | 2022.10.11 |
---|---|
MySQL에 날짜 추가 (0) | 2022.10.10 |
수집되지 않은 유형 오류: (중간값)(...)이 함수가 아닙니다. (0) | 2022.10.10 |
PHP "php://input" vs $_POST (0) | 2022.10.10 |
mysql에 데이터가 없는 데이터베이스 구조 복사(빈 테이블 포함) (0) | 2022.10.10 |