Запуск докер на 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
Settings → Shared Folders → Add 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