도커 볼륨 MariaDB Windows
대학 2학년 때 만든 프로젝트를 도킹하고 오픈소스를 하려고 합니다.이 프로젝트는 MariaDB, phpMyAdmin 및 PHP/Yi Framework를 사용합니다.
제 목표는 심플한 것만으로 바로 사용할 수 있도록 하는 것입니다.docker-compose up
명령어를 입력합니다.
phpMyAdmin과 DB의 접속은 성공했지만 Docker가 데이터베이스 볼륨에 대한 상대 경로를 가지도록 해야 합니다.
볼륨 마운트 관련 내용은 다음과 같습니다.
volumes:
- './database/mysql/:/var/lib/mysql'
이것은 데이터베이스 파일을 프로젝트 내에 저장하고 있습니다.그 후, 그 파일을 무시할 수 있습니다..gitignore
문제는 내가 뛰었을 때docker-compose up
이 구성에서는 다음을 얻을 수 있습니다.
Invalid volume specification: 'C:\Users\MySelf\coding\my_app\database\mysql:/var/lib/mysql:rw'
호스트에 관해서는 Docker Toolbox가 있는 Windows를 사용하고 있습니다만,docker-compose.yml
OS에 구애받지 않고 작업할 수 있습니다.
비슷한 질문을 본 적이 있지만, 그 오류는 제가 찾고 있지 않은 Windows의 절대 경로 문제에서 비롯되었습니다.
편집: 올바른 최종 docker-compose.yml을 추가합니다.
version: '2'
services:
web_db:
build: ./database/mysql
command: "mysqld --innodb-buffer-pool-size=20M"
volumes:
- ./database/mysql/data/:/var/lib/mysql
- ./database/mysql/initDB/create_tables.sql:/docker-entrypoint-initdb.d/create_tables.sql
environment:
MYSQL_ROOT_PASSWORD: 'YOURPASSWORD'
MYSQL_DATABASE: 'support-technique'
MYSQL_ROOT_HOST: '172.17.0.1'
ports:
- "3306:3306"
container_name: web_db
web:
build: .
depends_on:
- web_db
links:
- web_db:db
ports:
- "80:80"
phpmyadmin:
image: phpmyadmin/phpmyadmin
depends_on:
- web_db
links:
- web_db:mysql
ports:
- "8181:80"
environment:
PMA_HOST: mysql
호스트 디렉토리를 데이터 볼륨으로 마운트하면 설명서에 다음과 같이 표시됩니다.
그
host-dir
절대 경로 또는 이름 값 중 하나입니다.에 절대 경로를 지정한 경우host-dir
도커바인드마운트를 지정한 경로에 설치합니다.이름을 지정하면 Docker는 해당 이름으로 명명된 볼륨을 생성합니다.이름 값은 영숫자로 시작하고 그 뒤에 다음 문자를 입력해야 합니다.
a-z0-9
,_
(밑줄),.
(기간) 또는-
(하이픈)
절대 패스는 a로 시작합니다./
(전진 슬래시).
그러면 오류 메시지가 설명됩니다.
절대 경로를 사용하면 OS에 링크됩니다(원하는 경로가 아닙니다).
docker run -v c:\<path>:/c:\<container path>
docker run -v /c/<path>:/c:\<container path>
"도커 컴포지트 실행" 예에서 설명한 바와 같이 Windows에서 "Invalid volume specification"을 발생시키는 경우 먼저 이 도커 컴포지트 환경변수를 설정하십시오.
만들다
.env
path docker-docker.yml의 파일은 다음 내용과 함께 배치됩니다.
COMPOSE_CONVERT_WINDOWS_PATHS=1
OP Daniel은 코멘트에서 포함을 사용하면 상대 경로가 기능함을 확인합니다.
대신 데이터 볼륨 이름을 사용하는 것이 좋습니다. 호스트 경로 이름에 의존하지 않습니다.
언급URL : https://stackoverflow.com/questions/41343972/docker-volumes-mariadb-windows
'itsource' 카테고리의 다른 글
JavaScript를 사용하여 드롭다운 목록에서 선택한 값 가져오기 (0) | 2022.09.12 |
---|---|
__init_.py를 사용하더라도 "비패키지 내 상대 Import 시도"를 수정하는 방법 (0) | 2022.09.11 |
Google Chrome JavaScript 콘솔에서 디버깅 메시지를 인쇄하려면 어떻게 해야 합니까? (0) | 2022.09.11 |
Java에서 Clojure로 리라이트 (0) | 2022.09.11 |
스칼라 변환 방법java.util.List에 목록 표시? (0) | 2022.09.11 |