พอร์ตคอนเทนเนอร์ Nginx Docker ที่ส่งต่อไม่ทำงานบน OS X


0

ตกลงนี่คือการขับรถฉันบ้าถั่ว ฉันพยายามเรียกใช้เซิร์ฟเวอร์ 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 สำเร็จทันที

ใครที่รู้ว่าเกิดอะไรขึ้นที่นี่



เหมือนกันที่นี่ มีคุณ ดูที่นี้ ?
JakeGould

1
ไม่ฉันยังไม่ได้ แต่ฉันเพิ่งแก้ไขปัญหา สิ่งที่ฉันทำโดยเริ่มต้นการแมปคอนเทนเนอร์ของฉันที่ 8080 ถึง 80 และการเพิ่มการส่งต่อพอร์ตไปยัง boot2docker สำหรับ 8080 ถึง 80 กำลังสร้างโซ่ 8080- & gt; 80 | 8080- & gt; 80 ซึ่งใช้ไม่ได้ ตอนนี้ฉันเริ่มคอนเทนเนอร์ด้วย -P 80:80 และส่งต่อพอร์ตจาก 8080 ถึง 80 โซ่นั้นใช้ได้: 8080- & gt; 80- & gt; 80- & gt; 80
verhage

ดีใจที่ได้ยินว่าคุณแก้ไขมัน! อาจดีที่สุดถ้าคุณโพสต์ความคิดเห็นนั้นเป็นคำตอบที่แท้จริงซึ่งอ้างอิงจากคำสั่งที่โพสต์ในคำถามของคุณสำหรับการเปรียบเทียบ / ความเปรียบต่าง
JakeGould
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.