gpt4 book ai didi

macos - 使用共享 MySQL 容器

转载 作者:行者123 更新时间:2023-12-04 20:32:55 24 4
gpt4 key购买 nike

Tl;博士;试图让 WordPress docker-compose 容器与另一个 docker-compose 容器对话。

在我的 Mac 上,我有一个 WordPress 和 MySQL 容器,我用链接的 MySQL 服务器构建和配置了它。在生产中,我计划使用 Google Cloud MySQL 存储实例,因此计划从 docker-compose 文件中删除 MySQL 容器(取消链接),然后将我可以使用的共享容器与多个 docker 容器分开。

我遇到的问题是我无法将 WordPress 容器连接到单独的 MySQL 容器。任何人都可以阐明我将如何解决这个问题?

我尝试创建一个网络并尝试创建一个本地框通过/etc/hosts 文件引用的固定 IP,但没有成功(我的首选配置,因为我可以根据 ENV 更新文件)

工作组:

version: '2'

services:
wordpress:
container_name: spmfrontend
hostname: spmfrontend
domainname: spmfrontend.local
image: wordpress:latest
restart: always
ports:
- 8080:80

# creates an entry in /etc/hosts
extra_hosts:
- "ic-mysql.local:172.20.0.1"

# Sets up the env, passwords etc
environment:
WORDPRESS_DB_HOST: ic-mysql.local:9306
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: root
WORDPRESS_DB_NAME: wordpress
WORDPRESS_TABLE_PREFIX: spm

# sets the working directory
working_dir: /var/www/html

# creates a link to the volume local to the file
volumes:
- ./wp-content:/var/www/html/wp-content

# Any networks the container should be associated with
networks:
default:
external:
name: ic-network

MySQL:
version: '2'

services:
mysql:
container_name: ic-mysql
hostname: ic-mysql
domainname: ic-mysql.local
restart: always
image: mysql:5.7
ports:
- 9306:3306

# Create a static IP for the container
networks:
ipv4_address: 172.20.0.1

# Sets up the env, passwords etc
environment:
MYSQL_ROOT_PASSWORD: root # TODO: Change this
MYSQL_USER: root
MYSQL_PASS: root
MYSQL_DATABASE: wordpress

# saves /var/lib/mysql to persistant volume
volumes:
- perstvol:/var/lib/mysql
- backups:/backups

# creates a volume to persist data
volumes:
perstvol:
backups:

# Any networks the container should be associated with
networks:
default:
external:
name: ic-network

最佳答案

您可能想要做的是为两个容器创建一个共享的 Docker 网络,并将它们都指向它。您可以使用 docker network create <name> 创建网络.我会用 sharednet作为下面的示例,但您可以使用任何您喜欢的名称。

一旦网络在那里,您就可以将两个容器都指向它。当您使用 docker-compose 时,您将在 YAML 文件的底部执行此操作。这将位于文件的顶层,即一直向左,如 volumes: .

networks:
default:
external:
name: sharednet

要在普通容器上(在 compose 之外)做同样的事情,你可以通过 --network争论。

docker run --network sharednet [ ... ]

关于macos - 使用共享 MySQL 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41541522/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com