我在 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 关注
- 143 浏览
添加回答
举报
0/150
提交
取消