Estoy alojando un servidor mysql y un servidor go http en docker. No puedo acceder al servidor http desde mi máquina host. Mi máquina host es una mac.
He intentado usar localhost:8080 e ipofserver:8080 . Obtengo la ip de la docker inspect . Puedo conectarme a mi servidor mysql desde mi host, pero no puedo acceder al servidor desde el host.
Aquí está mi salida docker ps .
0.0.0.0:8080->8080/tcp 0.0.0.0:3306->3306/tcp, 33060/tcpA continuación están mis datos:
Docker Desktop versión 2.0.0.3.
docker-compose
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"archivo acoplable mysql
FROM mysql:8.0.16 COPY ./scripts/mysql/dbgen-v1.sql /docker-entrypoint-initdb.d/ EXPOSE 3306archivo acoplable del servidor
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"](Esta respuesta se basa en el chat que tuvimos en los comentarios )
Para exponer el servidor web desde el interior del contenedor al host, debe vincularse a 0.0.0.0 y no a 127.0.0.1. El uso de 0.0.0.0 garantiza que el servidor web se vincule a la interfaz de puente a la que se puede acceder desde el lado del host.
Documentos relevantes de Docker: https://docs.docker.com/v17.09/engine/userguide/networking/default_network/binding/