我對 Docker 和埠有點掙扎,但這是我的情況。我有一個 Docker 撰寫檔案,它啟動了一個 Postgres 資料庫和管理員,即管理員 GUI。這是我的(截斷的)配置:
# database
db:
image: postgres:14.2
volumes:
- .psqlrc:/root/.psqlrc:ro
- dbdat:/var/lib/postgresql/data
- ./log:/root/log:cached
- ./latest.dump:/latest.dump
environment:
POSTGRES_DB: hlp-api-dev
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
DB_PORT: 5432
ports:
- 5432
healthcheck:
test: pg_isready -U postgres -h 127.0.0.1
interval: 5s
# database admin
dbAdmin:
image: adminer
ports:
- 8080
depends_on:
- db
一切正常 - 但是對管理員的 HTTP 訪問似乎是 Docker 選擇的隨機埠,例如
http://localhost:57014
...我只能通過單擊 Docker Desktop 中其容器旁邊的瀏覽器按鈕來找到它。我如何指定這個埠,為什么它不能在
http://localhost:8080
...列出的埠是哪個?
如果我嘗試指定另一個埠,即
ports:
- 8080
- 5000 # my choice
...然后它根本不會在任何埠上旋轉。即使我單擊 DD 中的瀏覽器按鈕,我也會在瀏覽器中獲得“連接重置”。
uj5u.com熱心網友回復:
是的你可以。如果您將兩個埠號指定為xxxx:yyyy,第一個將是主機埠,第二個將是應用程式正在偵聽的內部容器埠。管理員在 8080 上偵聽,以便修復。但是您可以自由選擇主機埠。所以要在 http://localhost:5000/ 上訪問它,你會這樣做
# database admin
dbAdmin:
image: adminer
ports:
- 5000:8080
depends_on:
- db
如果你愿意,你可以在 Postgres 容器上做同樣的事情。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/463033.html
標籤:PostgreSQL 码头工人 管理员
