Хорошо, это сводит меня с ума. Я пытаюсь запустить сервер 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, мгновенный успех.

Кто-нибудь знает, что здесь происходит?

0