Docker для Windows - каталог для монтирования пуст - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть образ с установленным MYSQL.Мне нужно сопоставить каталог / var / lib / mysql с моей хост-системой.Ниже приведен скриншот, который я вижу в этом каталоге, когда я использую следующую команду

docker run --rm -it --env-file = envProxy --network mynetwork --name my_db_dev -p3306: 3306 my_db / bin / bash

Screenshot of the Docker container without mount from the same image

Теперь, когда я пытаюсь смонтировать каталог с моего хоста (Windows 10), запустивдругой контейнер с тем же изображением, каталог mysql пуст.

запуск Docker --rm -it --env-file = envProxy - сеть mynetwork -v D: / docker / data: / var / lib / mysql --name my_db_dev1 -p 3306:3306 my_db / bin / bash

Также пробовал это, но ни один не работает

docker run --rm -it --env-file = envProxy -сеть mynetwork -v D: \ docker \ data: / var / lib / mysql - имя my_db_dev1 -p 3306: 3306 my_db / bin / bash

enter image description here

Одна вещь, которую я вижу, это то, что в каталоге mysql в пути теперь есть пользователь root, а не mysql, как в предыдущем случае.

Я хотел получить весь контент из существующегоконтейнер (каталог mysql) для копирования обратно в каталог монтирования хоста

Возможно ли это?и как этого достичь?

Ответы [ 4 ]

0 голосов
/ 22 июля 2019

попробуйте отключить антивирусную программу или брандмауэр.Затем нажмите «Сбросить учетные данные» в разделе «Настройки / Общие диски».Это сработало для меня.

С уважением.

0 голосов
/ 14 марта 2019

Используйте пути Windows для записи с обратной косой чертой '\', и для указания пути рекомендуется использовать переменныеС другой стороны для Linux используйте косую черту '/' Например:

docker run -it -v %userprofile%\work\myproj\some-data:/var/data
0 голосов
/ 05 июня 2019

Та же проблема в Docker Desktop (2.0.0.3 (31259)).Я получил решение от этой проблемы .

Я удостоверился, что контейнеры были остановлены, открыл настройки докера, выбрал «Общие диски», снял галочку «C» и добавил ее снова.Докер запросил учетные данные Windows, и я ввел новые.После этого и запуска контейнеров, объемы монтирования были в порядке.Проблема решена.

Это может решить проблему проще, просто сбросив учетные данные в настройках Docker.

0 голосов
/ 18 декабря 2018

Если вам нужно получить файлы из контейнера на хост, лучше используйте команду docker cp: https://docs.docker.com/engine/reference/commandline/cp/

Это будет выглядеть так: docker cp my_db_dev1:/var/lib/mysql d:\docker\data

UPD

На самом деле я хочу сохранить файлы базы данных в других контейнерах, поэтому я хотел использовать тома

В этом случае вам необходимо:

  1. Начните использовать docker-compose для организации контейнеров.

  2. В docker-compose.yml вы создаете том, который распределяется между всеми контейнерами.Что-то вроде:

docker-compose.yml

version: '3'
services:
  db1:
    image: whatever
  volumes:
    - myvol:/data

  db2:
    image: whatever2
  volumes:
    - myvol:/data

volumes:
  myvol:  

Описание: https://docs.docker.com/compose/compose-file/#volume-configuration-reference

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...