* 原始文章地址可能暂时无法访问,仅展示文章的摘要信息

关于docker bridge模式连接本地(宿主)数据库的设置记录」的摘要信息

前言 最近在docker部署了几个容器需要用到数据库的,但是又不想用host模式,所以查了一些相关资料,做个记录。 容器设置 一般用docker-compose安装,通用的格式见下代码 version: '3' services: 容器: image: 地址 restart: always network_mode: "bridge" ports: - 本地端口:容器端口 environment: DATABASE_TYPE: mysql DATABASE_URL: mysql://username:secret@172.17.0.1:3306/数据库名称 APP_SECRET: replace-me-with-a-random-string container_name: 容器名称 数据库地址 这里需要注意的是network_mode我们选择bridge。之前查了很多资料,基本上说的是通过开放数据库端口到公网,然后通过公网ip:端口号的模式访问。但是这个方式暴露数据库到公网了,很不安全。这里讲一种方法,可以直接通过访问桥接网络的网关来访问宿主机的服务。所以这里数据库的地址就变成"172.17.0.1",这个地址是”bridge“的网关。每个容器的网关地址不同,可以通过以下指令查看: docker inspect 容器名称 一般网络这一项是在最下面,"Gateway"这一项: 数据库权限 数据库的访问权限要设置一下,不然一般是只能本地ip地址访问。 登录MySQL控制台 mysql -u root -p // -u表示用户,-p表示需要密码,root可以改成其他用户 Enter password: // 输入密码 use mysql ...