Хорошо, это сводит меня с ума. Я пытаюсь запустить сервер Nginx через Docker, но не могу правильно открыть порт 80.
Поскольку я использую boot2docker как обычный пользователь, я не могу привязать ни один порт под 1024, поэтому я добавляю переадресацию портов для 8080 как:
VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port8080,tcp,,8080,,80"
Затем я запускаю boot2docker:
boot2docker start
и выполнить операторы экспорта, которые он говорит мне:
export DOCKER_TLS_VERIFY=1
export DOCKER_HOST=tcp://192.168.59.103:2376
export DOCKER_CERT_PATH=/Users/verhage/.boot2docker/certs/boot2docker-vm
Я вытащил изображение nginx:
docker pull dockerfile/nginx
Затем я запускаю свой контейнер nginx:
docker run -d -p 8080:80 --name nginx dockerfile/nginx
Все в порядке, поэтому я открываю свой браузер и захожу на http://localhost:8080
, но ничего не происходит («Код ошибки: ERR_EMPTY_RESPONSE» в Chrome).
Как я проверяю с помощью telnet, соединение установлено, но немедленно прекращается сервером:
telnet localhost 8080
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
Я знаю, что это связано с OS X / Boot2docker. Я попытался настроить контейнер из того же изображения на CentOS, мгновенный успех.
Кто-нибудь знает, что здесь происходит?