컨테이너 시작시 error while creating mount source path '/host_mnt/Users/~': mkdir/host_mnt/Users/~: file exists가 되었을 때의 대처법
5347 단어 docker-compose도커
현상
volumes를 설정하고 있는 컨테이너(MySQL용)를 정지 → 기동한 곳
htps // qr. 파 ypa y. 네. jp / 아루 m 펜은 hPrpK$ docker-compose up -d
Creating volume "sample_db-store" with default driver
Creating sample_db_1 ... error
ERROR: for sample_db_1 Cannot start service db: error while creating mount source path '/host_mnt/Users/~/docker/mysql/sql': mkdir /host_mnt/Users/~/docker/mysql/sql: file exists
ERROR: Encountered errors while bringing up the project.
"호스트 디렉토리를 마운트 할 수 없다"는 오류 메시지가 표시되고 컨테이너를 시작할 수 없습니다.
운영 환경
해결 방법
Docker Desktop for Windows를 사용하는 경우
Docker Desktop for Windows → [Settings] → [Shared Drives] → [Reset Credentials] → 재인증(해당 경로 확인) [참고] htps //w w. 박제 ts. jp / 엔트리 / 드 c 케 루 푸우 루 우드 ws mk ぢ r
Mac용 Docker Desktop을 사용하는 경우
Mac용 Docker Desktop → [preferences...] → [Resources] → [File Sharing]
/Users를 지운 후 [apply & Restart]
그런 다음/Users를 추가하고 [apply & Restart]
해결하기 전에 시도한 것
동작 배경
docker-compose로, 다음과 같이 MySQL의 컨테이너를 구축하고 있었다.
docker-compose.ymlversion: '3'
services:
db:
image: mysql:8.0
volumes:
- db-store:/var/lib/mysql
- ./logs:/var/log/mysql
- ./docker/mysql/my.cnf:/etc/mysql/conf.d/my.cnf
- ./docker/mysql/sql:/docker-entrypoint-initdb.d
environment:
- MYSQL_DATABASE=${DB_NAME}
- MYSQL_USER=${DB_USER}
- MYSQL_PASSWORD=${DB_PASS}
- MYSQL_ROOT_PASSWORD=${DB_PASS}
- TZ=${TZ}
ports:
- ${DB_PORT}:3306
volumes: db-store
volumes에는 data, log 주위에 관한 것 외에도
docker-compose.yml - ./docker/mysql/sql:/docker-entrypoint-initdb.d
정의합니다.
MySQL용 이미지에서는 /docker-entrypoint-initdb.d
에 마운트할 때, 지정한 호스트측의 디렉토리에 존재하는 .sql
, .sh
파일을, 컨테이너 최초의 기동시에 읽어들여 실행해 준다.
htps // // 후 b. 두 c r. 이 m/_/mysql/
그 때문에, 컨테이너에 마운트 하는 호스트측의 디렉토리 ./docker/mysql/sql
에, 테이블 작성용의 SQL와 SQL 실행용의 쉘 스크립트를 두고 있었다. 처음 시작할 때 문제없이 작동. 사이에 둔 SQL과 쉘 스크립트도 문제없이 달리고 있었다.
그러나 한 번 컨테이너를 docker-compose stop
에서 중지 한 후 docker-compose up
에서 시작할 때이 현상이 발생했습니다.
시도한 것 ①: 볼륨 삭제
조사하고 있는 것과 유사한 거동이 볼륨 삭제에 의해 해결할 수 있다는 정보를 발견했기 때문에 컨테이너와 명명된 볼륨을 삭제해 보았다.$ docker-compose down --volumes
Removing sample_db_1 ... done
Removing volume sample_db-store
$ docker-compose up -d
실패.
시도한 것②: Docker Desktop for Mac의 공유 폴더 자격 증명 업데이트(이번 해결 방법)
비슷한 Docker Daemon 오류docker: Error response from daemon: error while creating mount source path '/host_mnt/c/tmp': mkdir /host_mnt/c: file exists.
하지만 Docker Desktop for Windows를 사용하는 경우에 보고된 것으로 나타났습니다.
그러나 Mac 용 Docker Desktop에서 유사한 오류가 발생했다고보고되지 않았습니다.
안돼 원래, Windows와 조금 흐름은 다르지만 Docker Desktop for Mac에서 위의 에러의 해결법을 모방해 보았더니, 움직였다.
원인
아마도 Docker Desktop Volumes 공유 설정에 문제가 발생했고 호스트 측 디렉토리 정보에 액세스 할 수 없었던 것이라고 생각합니다. 자세한 내용은 알 수 없습니다.
근본 원인에 대해 알고 계시다면 알려주세요
Reference
이 문제에 관하여(컨테이너 시작시 error while creating mount source path '/host_mnt/Users/~': mkdir/host_mnt/Users/~: file exists가 되었을 때의 대처법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sho-hata/items/579ab597e4015b9f19fe
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ docker-compose up -d
Creating volume "sample_db-store" with default driver
Creating sample_db_1 ... error
ERROR: for sample_db_1 Cannot start service db: error while creating mount source path '/host_mnt/Users/~/docker/mysql/sql': mkdir /host_mnt/Users/~/docker/mysql/sql: file exists
ERROR: Encountered errors while bringing up the project.
해결 방법 Docker Desktop for Windows를 사용하는 경우 Docker Desktop for Windows → [Settings] → [Shared Drives] → [Reset Credentials] → 재인증(해당 경로 확인) [참고] htps //w w. 박제 ts. jp / 엔트리 / 드 c 케 루 푸우 루 우드 ws mk ぢ r
Mac용 Docker Desktop을 사용하는 경우
Mac용 Docker Desktop → [preferences...] → [Resources] → [File Sharing]
/Users를 지운 후 [apply & Restart]
그런 다음/Users를 추가하고 [apply & Restart]
해결하기 전에 시도한 것
동작 배경
docker-compose로, 다음과 같이 MySQL의 컨테이너를 구축하고 있었다.
docker-compose.ymlversion: '3'
services:
db:
image: mysql:8.0
volumes:
- db-store:/var/lib/mysql
- ./logs:/var/log/mysql
- ./docker/mysql/my.cnf:/etc/mysql/conf.d/my.cnf
- ./docker/mysql/sql:/docker-entrypoint-initdb.d
environment:
- MYSQL_DATABASE=${DB_NAME}
- MYSQL_USER=${DB_USER}
- MYSQL_PASSWORD=${DB_PASS}
- MYSQL_ROOT_PASSWORD=${DB_PASS}
- TZ=${TZ}
ports:
- ${DB_PORT}:3306
volumes: db-store
volumes에는 data, log 주위에 관한 것 외에도
docker-compose.yml - ./docker/mysql/sql:/docker-entrypoint-initdb.d
정의합니다.
MySQL용 이미지에서는 /docker-entrypoint-initdb.d
에 마운트할 때, 지정한 호스트측의 디렉토리에 존재하는 .sql
, .sh
파일을, 컨테이너 최초의 기동시에 읽어들여 실행해 준다.
htps // // 후 b. 두 c r. 이 m/_/mysql/
그 때문에, 컨테이너에 마운트 하는 호스트측의 디렉토리 ./docker/mysql/sql
에, 테이블 작성용의 SQL와 SQL 실행용의 쉘 스크립트를 두고 있었다. 처음 시작할 때 문제없이 작동. 사이에 둔 SQL과 쉘 스크립트도 문제없이 달리고 있었다.
그러나 한 번 컨테이너를 docker-compose stop
에서 중지 한 후 docker-compose up
에서 시작할 때이 현상이 발생했습니다.
시도한 것 ①: 볼륨 삭제
조사하고 있는 것과 유사한 거동이 볼륨 삭제에 의해 해결할 수 있다는 정보를 발견했기 때문에 컨테이너와 명명된 볼륨을 삭제해 보았다.$ docker-compose down --volumes
Removing sample_db_1 ... done
Removing volume sample_db-store
$ docker-compose up -d
실패.
시도한 것②: Docker Desktop for Mac의 공유 폴더 자격 증명 업데이트(이번 해결 방법)
비슷한 Docker Daemon 오류docker: Error response from daemon: error while creating mount source path '/host_mnt/c/tmp': mkdir /host_mnt/c: file exists.
하지만 Docker Desktop for Windows를 사용하는 경우에 보고된 것으로 나타났습니다.
그러나 Mac 용 Docker Desktop에서 유사한 오류가 발생했다고보고되지 않았습니다.
안돼 원래, Windows와 조금 흐름은 다르지만 Docker Desktop for Mac에서 위의 에러의 해결법을 모방해 보았더니, 움직였다.
원인
아마도 Docker Desktop Volumes 공유 설정에 문제가 발생했고 호스트 측 디렉토리 정보에 액세스 할 수 없었던 것이라고 생각합니다. 자세한 내용은 알 수 없습니다.
근본 원인에 대해 알고 계시다면 알려주세요
Reference
이 문제에 관하여(컨테이너 시작시 error while creating mount source path '/host_mnt/Users/~': mkdir/host_mnt/Users/~: file exists가 되었을 때의 대처법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sho-hata/items/579ab597e4015b9f19fe
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
version: '3'
services:
db:
image: mysql:8.0
volumes:
- db-store:/var/lib/mysql
- ./logs:/var/log/mysql
- ./docker/mysql/my.cnf:/etc/mysql/conf.d/my.cnf
- ./docker/mysql/sql:/docker-entrypoint-initdb.d
environment:
- MYSQL_DATABASE=${DB_NAME}
- MYSQL_USER=${DB_USER}
- MYSQL_PASSWORD=${DB_PASS}
- MYSQL_ROOT_PASSWORD=${DB_PASS}
- TZ=${TZ}
ports:
- ${DB_PORT}:3306
volumes: db-store
- ./docker/mysql/sql:/docker-entrypoint-initdb.d
$ docker-compose down --volumes
Removing sample_db_1 ... done
Removing volume sample_db-store
$ docker-compose up -d
docker: Error response from daemon: error while creating mount source path '/host_mnt/c/tmp': mkdir /host_mnt/c: file exists.
아마도 Docker Desktop Volumes 공유 설정에 문제가 발생했고 호스트 측 디렉토리 정보에 액세스 할 수 없었던 것이라고 생각합니다. 자세한 내용은 알 수 없습니다.
근본 원인에 대해 알고 계시다면 알려주세요
Reference
이 문제에 관하여(컨테이너 시작시 error while creating mount source path '/host_mnt/Users/~': mkdir/host_mnt/Users/~: file exists가 되었을 때의 대처법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sho-hata/items/579ab597e4015b9f19fe텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)