tidak dapat mengakses http: // localhost: 4000 setelah saya memetakan nomor port ini ke buruh pelabuhan


5

Ini adalah pertama kalinya saya menggunakan buruh pelabuhan. Saya baru saja mengikuti langkah-langkah di webist docker: https://docs.docker.com/get-started/part2/#run-the-app Setelah saya menyelesaikan setiap langkah, saya tidak dapat mengakses http://localhost:4000dari browser. (Langkah-langkah ini di tautan akan memetakan 80 hingga 4000 di buruh pelabuhan) Berikut adalah konfigurasi untuk buruh pelabuhan saya:

$ docker ps
CONTAINER ID        IMAGE               COMMAND
STATUS              PORTS                  NAMES
d204920463a9        firendlyhello       "python app.py"
Up 6 minutes        0.0.0.0:4000->80/tcp   pensive_bell

Ketika saya menjalankan aplikasi ini:

liyuan.liu@USEUG-98T5N32 MINGW64 ~/test
$ docker run -p 4000:80 firendlyhello
* Running on http://0.0.0.0:80/ (Press CTRL+C to quit)

Kemudian saya mencoba untuk membuka http: // localhost: 4000 di browser saya, tetapi hanya mengatakan: Situs ini tidak dapat dijangkau. Ini adalah konten app.py:

liyuan.liu@USEUG-98T5N32 MINGW64 ~/test
$ cat app.py
from flask import Flask
from redis import Redis, RedisError
import os
import socket

# Connect to Redis
redis = Redis(host="redis", db=0)

app = Flask(__name__)

@app.route("/")
def hello():
    try:
        visits = redis.incr('counter')
    except RedisError:
        visits = "<i>cannot connect to Redis, counter disabled</i>"

    html = "<h3>Hello {name}!</h3>" \
           "<b>Hostname:</b> {hostname}<br/>" \
           "<b>Visits:</b> {visits}"
    return html.format(name=os.getenv('NAME', "world"), hostname=socket.gethostname(), visits=visits)


if __name__ == "__main__":
    app.run(host='0.0.0.0', port=80)

Apakah mungkin kesalahan ketik pada perintah Anda menyebabkan ini? Gambar buruh pelabuhan adalah "friendlyhello" tetapi Anda mengetik "firendlyhello"
— Myles Keating

Jika itu karena kesalahan ketik, baris perintah buruh pelabuhan masih menampilkan bahwa itu sedang berjalan. Jika sedang berjalan, localhost: 4000 seharusnya berfungsi, benar?
— beasone

Pertama, dapatkah Anda mengaksesnya di http://localhost:80? Bagaimana dengan http://0.0.0.0:80dan http://0.0.0.0:4000?
— Thebluefish

Saya mencoba localhost: 80 , 0.0.0.0:80 dan 0.0.0.0:4000 dan 127.0.0.1:4000 , tidak ada yang bekerja. (situs web pengguna super selalu menyembunyikan "http: //" ketika saya mengetiknya di komentar ......)
— beasone

Jawaban:


2

Docker mengkonfigurasi alamat IP defaultnya sendiri, yang dapat Anda lihat setiap kali Anda meluncurkan Terminal Quickstart Docker.

Alih-alih http://localhost:4000,type http://[IP address:4000]

Anda juga dapat menggunakan perintah ini untuk menemukan IP yang telah dikonfigurasi Docker:

docker-machine ip default
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.