Запуск докер на Windows 7, Docker Toolbox, Git Bash

Установить Docker Toolbox https://docs.docker.com/docker-for-windows/
Если уже установлен VirtualBox, то в установщике Docker Toolbox снимаем галку VirtualBox

Запускаем наш контейнер

docker run --rm -it -p 8080:8080 -v $(pwd)/nginx:/etc/nginx:ro --name my-nginx-server nginx

В директории nginx должен лежать конфиг-файл nginx.conf

Можно передать напрямую

docker run --rm -it -p 8080:8080 -v $(pwd)/nginx/nginx.conf:/etc/nginx/nginx.conf:ro --name my-nginx-server nginx

Посмотреть что подключилось

docker run --rm -it -p 8080:8080 -v $(pwd)/nginx/nginx.conf:/etc/nginx/nginx.conf:ro --name my-nginx-server nginx ls -al /etc/nginx

Ошибка конвертирования путей

источник

Ошибка возниает в Git Bash из-за конвертирования путей

C:\Program Files\Docker Toolbox\docker.exe: Error response from daemon: invalid mode: \Program Files\Git\etc\nginx;ro. See 'C:\Program Files\Docker Toolbox\docker.exe run --help'.

Добавляем переменную среды MSYS_NO_PATHCONV=1

MSYS_NO_PATHCONV=1 docker run --rm -it -p 8080:8080 -v $(pwd)/nginx:/etc/nginx:ro --name my-nginx-server nginx

Ошибка доступа к диску

источник

Ошибка ниже возникает, если запускаемый проект находится не на диске C:. По умолчанию виртуальная машина Docker Toolbox имеет доступ только к диску C:

C:\Program Files\Docker Toolbox\docker.exe: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:402: container init caused \"rootfs_linux.go:58: mounting \\"/e/work/my-project/ngin x/nginx.conf\\" to rootfs \\"/mnt/sda1/var/lib/docker/aufs/mnt/1f1bcd6fa585643c7\\" at \\"/mnt/sda1/var/lib/docker/aufs/mnt/1f1bcd6fa585643c7/etc/nginx/nginx.conf\\" caused \\"not a directory\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.

Останавливаем машину

docker-machine stop

Открываем VirtualBox, идем в настройки виртуальной машины Docker Toolbox

SettingsShared FoldersAdd share

  • Path: E:\
  • Folder name: e/

Отметить "Авто-подключение"

Запускаем машину

docker-machine start

Узнать IP-адрес запущенного nginx-сервера

docker-machine ip

192.168.99.100

Проверяем

curl http://192.168.99.100:8080

Материалы