itsource

도커 볼륨 MariaDB Windows

mycopycode 2022. 9. 11. 18:28
반응형

도커 볼륨 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.ymlOS에 구애받지 않고 작업할 수 있습니다.

비슷한 질문을 본 적이 있지만, 그 오류는 제가 찾고 있지 않은 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"을 발생시키는 경우 먼저 이 도커 컴포지트 환경변수를 설정하십시오.

만들다.envpath docker-docker.yml의 파일은 다음 내용과 함께 배치됩니다.

COMPOSE_CONVERT_WINDOWS_PATHS=1

OP Daniel은 코멘트에서 포함을 사용하면 상대 경로가 기능함을 확인합니다.

대신 데이터 볼륨 이름을 사용하는 것이 좋습니다. 호스트 경로 이름에 의존하지 않습니다.

언급URL : https://stackoverflow.com/questions/41343972/docker-volumes-mariadb-windows

반응형