#docker #windows-10 #volume #docker-volume #linux-containers
#docker #windows-10 #объем #docker-volume #linux-контейнеры
Вопрос:
Я запускаю Docker для Windows версии 19.03.12. Я запускаю контейнер Linux из Windows 10. Я делюсь всем своим диском c: с Docker (см. Изображение). Я пытаюсь протестировать контейнер локально, и мне нужно передать файл учетных данных в контейнер.
Когда я запускаю следующую команду:
docker run --rm -p 9215:80 -p 44371:443 --name test -t createshipment:latest -v c:/temp:/data
Когда я исследую контейнер, я вообще не вижу папку / data (см. Изображение).
Я не уверен, что еще можно попробовать поделиться папкой при локальном тестировании docker.
Комментарии:
1. Вероятно, это потому, что вы указали информацию о томе после имени образа. Можете ли вы попробовать с
docker run --rm -p 9215:80 -p 44371:443 --name test -t -v c:/temp:/data createshipment:latest
? Обратите внимание, что-t
выделяет псевдо-tty. Это не означает--tag
, как это происходит вdocker build
.2. Вы на 100% правы. Это сработало. Если вы опубликуете свой ответ ниже, я приму его. Я потратил на это 2 дня, и вы решили это за 5 минут, я чрезвычайно признателен.
Ответ №1:
Команда docker run
ожидает имя изображения в качестве последнего аргумента перед любыми аргументами для точки входа изображения. В сообщении OP имя изображения предшествует -v ...
аргументу, поэтому -v ...
фактически передается в точку входа изображения.
docker run --rm -p 9215:80 -p 44371:443 --name test -t
-v c:/temp:/data createshipment:latest
Для полноты картины, вот соответствующие выдержки из документации для параметров командной строки, используемых здесь:
Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
...
--name string Assign a name to the container
-p, --publish list Publish a container's port(s) to the host
--rm Automatically remove the container when it exits
-t, --tty Allocate a pseudo-TTY
-v, --volume list Bind mount a volume