在Docker中连接到用户定义的网络

问题描述 投票:0回答:1

我想这个问题被问了一堆,但似乎找不到一个简明的答案...

我有以下Docker Compose:

version: "3.7"
networks:
  foo-network:
    driver: bridge
services:
  foo-pg-db:
    image: postgres:9.6.2-alpine
    restart: always
    volumes:
      - ./bootstrap/pg:/docker-entrypoint-initdb.d/
    ports:
      - 5432:5432
    environment:
      POSTGRES_USER: admin
    networks:
      - foo-network

这会运行,我可以使用以下URL从我的应用程序代码连接到它:“ postgres:// admin @ foo-pg-db / foo”,但是如果我尝试从我的应用程序连接到它Mac,连接URL的“主机”部分是什么?不是本地主机吗?

postgresql docker
1个回答
0
投票

对我来说,类似的事情发生在MySQL容器上,“本地主机”未被标识为docker容器地址的有效地址,并且使用“ 127.0.0.1”起作用。

127.0.0.1是Linux系统中的默认地址,请检查您的hosts文件以获取操作系统使用的确切地址

此外,您的网络与它无关,因为您直接使用ports变量:-

ports:
  - 5432:5432

这实际上将您的容器端口绑定到主机帖子。

<host_port> : <container_port>
© www.soinside.com 2019 - 2024. All rights reserved.