我在 docker 中托管一個mysql服務器和一個gohttp 服務器。我無法從我的主機訪問 http 服務器。我的主機是mac。我嘗試過使用localhost:8080和ipofserver:8080。我ip從 得到docker inspect. 我可以mysql從主機連接到服務器,但無法從主機訪問服務器。這是我的docker ps輸出。0.0.0.0:8080->8080/tcp0.0.0.0:3306->3306/tcp, 33060/tcp以下是我的詳細信息:Docker 桌面版本 2.0.0.3。docker 撰寫version: '3.1'services: mysql: image: mysql:latest restart: always environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: mydb volumes: - mysql:/var/lib/mysql ports: - "3306:3306" networks: - mynetwork server: image: server:latest networks: - mynetwork ports: - "8080:8080"volumes: mysql: ~networks: mynetwork: driver: "bridge"mysql dockerfileFROM mysql:8.0.16COPY ./scripts/mysql/dbgen-v1.sql /docker-entrypoint-initdb.d/EXPOSE 3306服務器dockerfileFROM golang:1.12.5WORKDIR a/go/pathCOPY . .ENV GOBIN=/usr/local/binRUN go get github.com/go-sql-driver/mysqlRUN go get github.com/iancoleman/strcaseRUN go get github.com/jmoiron/sqlxRUN go get github.com/spf13/cobraRUN go get github.com/gorilla/websocketRUN go get github.com/spf13/viperRUN go install -v cmd/project/main.goEXPOSE 8080CMD ["main"]
1 回答

MMTTMM
TA貢獻1869條經驗 獲得超4個贊
為了將 Web 服務器從容器內部公開給主機,它需要綁定到 0.0.0.0 而不是 127.0.0.1。使用 0.0.0.0 可確保 Web 服務器綁定到可以從主機端訪問的橋接口。
- 1 回答
- 0 關注
- 176 瀏覽
添加回答
舉報
0/150
提交
取消