如何将容器 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"写为字符串。在选择use时,host从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

试试这个

version: '3'
services:
app-phpmyadmin:
image: phpmyadmin/phpmyadmin
depends_on:
- app-mysql
ports:
- '8081:80'
container_name: app-phpmyadmin #name expose at list: docker ps
hostname: app-phpmyadmin #hostname in network docker
environment:
PMA_HOST: app-mysql
PMA_PORT: 3306
PMA_USER: "root"
PMA_PASSWORD: "root"
app-mysql:
image: mysql:5.7 #downgrade beacause mysql 8 generate error with phpmyadmin. error: caching_sha2_password
container_name: app-mysql #name expose at list: docker ps
hostname: app-mysql #hostname in network docker
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
ports:
- 3306

相关内容

最新更新