mysql - 如何将容器 IP 地址传递给另一个容器?
问题描述
我正确地尝试将容器 IP 地址传递给另一个
这是我的 docker-compose.yml 文件
app-phpmyadmin:
image: phpmyadmin/phpmyadmin
depends_on:
- app-mysql
ports:
- '80'
container_name: app-phpmyadmin
environment:
PMA_HOST: app-mysql
PMA_PORT: 3306
app-mysql:
image: mysql:8
container_name: app-mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_ROOT_HOST: app-phpmyadmin <<<< doesnt work see below why
ports:
- 3306
当传递 app-phpmyadmin 而不是传递 ip 时,它实际上将“app-phpmyadmin”写为字符串。在选择使用时,从 mysql.user 托管主机名是“app-phpmyadmin”而不是 ip。
有没有办法可以在 docker-compose 文件中执行此操作,或者我必须想出一个 bash 脚本来执行此操作?
解决方案
实际上,您可以尝试使用静态网络地址
version: '3.4'
services:
app-phpmyadmin:
image: phpmyadmin/phpmyadmin
depends_on:
- app-mysql
ports:
- '81'
container_name: app-phpmyadmin
environment:
PMA_HOST: app-mysql
PMA_PORT: 3306
networks:
app-net:
ipv4_address: 10.5.0.5
app-mysql:
container_name: app-mysql
image: mysql:8
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_ROOT_HOST: 10.5.0.5
ports:
- 3306
networks:
app-net:
ipv4_address: 10.5.0.6
networks:
app-net:
driver: bridge
ipam:
config:
- subnet: 10.5.0.0/16
推荐阅读
- c++ - 为什么我运行我的爬虫得到的 HTTP 响应数据不完整?
- ios - swiftui blendMode 与草图组合模式不匹配
- optimization - 具有隐式梯度计算的 Pytorch LBFGS
- javascript - 如何根据 JavaScript 中的条件对数组中的对象求和
- android - Android RecyclerView 在 notifyDataSetChanged 调用上冻结 UI
- c - 为什么将原始字节写入分区不起作用[扇区写入]?
- c# - C# 中 EML 到 MSG 转换的 Outlook 兑换
- sql-server - MS SQL 服务器 - 如何过滤最小字符长度
- git - Eclipse - 没有更改时的 Git Push HEAD
- c# - 即使我使用 try{}catch{},仍然会收到 NullReferenceException