无法从主机访问 docker 容器内的服务器

我在 docker 中托管一个mysql服务器和一个gohttp 服务器。我无法从我的主机访问 http 服务器。我的主机是mac。


我尝试过使用localhost:8080和ipofserver:8080。我ip从 得到docker inspect. 我可以mysql从主机连接到服务器,但无法从主机访问服务器。


这是我的docker ps输出。


0.0.0.0:8080->8080/tcp

0.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 dockerfile


FROM mysql:8.0.16


COPY ./scripts/mysql/dbgen-v1.sql /docker-entrypoint-initdb.d/


EXPOSE 3306

服务器dockerfile


FROM golang:1.12.5


WORKDIR a/go/path

COPY . .


ENV GOBIN=/usr/local/bin


RUN go get github.com/go-sql-driver/mysql

RUN go get github.com/iancoleman/strcase

RUN go get github.com/jmoiron/sqlx

RUN go get github.com/spf13/cobra

RUN go get github.com/gorilla/websocket

RUN go get github.com/spf13/viper


RUN go install -v cmd/project/main.go


EXPOSE 8080


CMD ["main"]


POPMUISE
浏览 151回答 1
1回答

MMTTMM

为了将 Web 服务器从容器内部公开给主机,它需要绑定到 0.0.0.0 而不是 127.0.0.1。使用 0.0.0.0 可确保 Web 服务器绑定到可以从主机端访问的桥接口。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go