Том Docker не показывает запущенный контейнер Linux в Windows 10

#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