我想在Docker
上运行我的WordPress
站点,并且我想将WordPress
数据库连接到另一个容器,该容器只有我所有站点的数据库。
为此,我使用以下docker-compose.yml
创建了一个lamp
容器:
version: "3"
services:
web:
image: webdevops/php-apache:alpine-php7
ports:
- "4500:80"
volumes:
- ./www:/app
- ./uploads.ini:/opt/docker/etc/php/php.ini
db:
image: mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
ports:
- "3306:3306"
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
MYSQL_ROOT_PASSWORD: root
ports:
- "8088:80"
正如您所看到的,我已经使用WebDevOps
映像安装了Apache
作为服务,这将返回以下内容:
然后,我创建了一个具有WordPress
实例的新容器:
version: '3'
services:
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- ./wp/wp-content:/var/www/html/wp-content
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: lamp_db_1:3306
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: root
volumes:
dbdata:
wp-content:
如您所见,我挂载了wp-content
文件夹,因为我已经安装了带有插件和媒体的Wordpress...然后我尝试将此容器连接到lamp_db_1
容器,但当我使用以下方式运行此容器时:
docker-compose up --build
我得到:
MySQL连接错误:(2002)php_network_getaddress:getaddrinfo失败:名称或服务未知
我做错了什么?
如何将wordpress容器连接到lamp
容器?
您可以在lamp
堆栈中指定自定义网络,并通过在Compose中使用network.external
参数,使wordpress
堆栈和其他Compose文件中定义的其他容器使用此网络。
在同一个网络中,您将能够使用lamp_db
容器的容器名作为主机名加入它。
一个完整的例子:
version: '3.5'
services:
db:
# This will be the hostname for your DB container on the network
container_name: lamp_db
image: mysql
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: root
# Have db container join our db network
networks:
- db_network
# Ensure our custom network is managed by this stack
networks:
db_network:
name: db_network
version: '3.5'
services:
wordpress:
image: wordpress:latest
ports:
- "8000:80"
environment:
# Name of the db container
WORDPRESS_DB_HOST: lamp_db:3306
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: root
# Have wordpress container join our db network
networks:
- db_network
# Declare db_network as external with it's name
# Network won't be created by this stack but must exists before running
# See https://docs.docker.com/compose/compose-file/#external-1
networks:
db_network:
external: true
name: db_network
以及需要使用数据库的任何服务的通用示例:
version: '3.5'
services:
some_container:
image: some-image:latest
# Have this container join our db network
networks:
- db_network
# Note: make sure to reference db container by it's hostname lamp_db
networks:
db_network:
external: true
name: db_network
备注:
db_network
通过lamp
堆栈进行管理。当up
进入lamp
堆栈时,Docker Compose将确保创建此网络。使用此网络的其他堆栈应将其声明为external:true
with其名称版本:“3.5”
或更高版本才能使用Network.Name
Config我正在尝试运行一个电子邮件收割机,当我在没有循环的情况下手动输入url时,我没有任何连接错误。 然而,当我从文件中加载url时,我得到以下错误“名称或服务错误” 回溯(最近一次调用):文件“/usr/lib/python3/dist-packages/urllib3/connection.py”,第141行,在新连接(self.host,self.port),self.timeout,**extr
问题内容: 在服务器中运行代码,env为debian时出现此错误,并且 当我运行时,它可以正常工作,没有任何错误: 问题答案: 似乎您正在尝试将Redis与当前Debian环境无法识别的服务器连接。从Traceback,我看到您正在尝试使用主机名localhost进行连接, 但是,您的系统无法理解“ localhost”,在主机文件中输入内容,即说127.0.0.1是localhost。在/ et
问题内容: 我正在尝试使用httplib将信用卡信息发送到authorize.net。当我尝试发布请求时,得到以下回溯: 我这样建立我的请求: 要添加另一层,它正在我们的开发服务器上运行,该服务器具有httplib 2.6,并且在httplib.HTTPSConnection中没有source_address参数。 任何帮助是极大的赞赏。 =============================
我们有一个私人空间,并提供了一个内部API的访问权限,这样我们就可以从私人空间应用程序访问它。因此,我们开发了一个演示Java应用程序来测试它。当我们尝试用HTTP连接服务时,堆栈跟踪会像这样结束。 当我们ping私有空间中的相应IP时,我们可以看到它已启动。但是当我们试图从Java应用程序中访问服务时,它就像上面那样结束了。 Java 代码是这样的: 有没有人有任何想法来解决这个问题? 谢谢你。
我配置了一个无密码的SFTP服务器。我想使用带有用户名和密码的jsch(JAVA)库连接它。我一直在使用以下代码行:- JAVA中的这一行是否会覆盖SSH配置的设置(少密码)? 请注意SFTP服务器使用终端命令SFTP连接良好,没有提示密码。
我目前正试图获得一个gRPC工作的例子。我使用C # Asp.NET核心WebApi作为服务器,并尝试通过Python客户端连接到它。 我的原始文件: Python客户端: 当我尝试运行我的Python客户端时,我收到以下错误: Traceback(最近一次调用last):存根中文件“gRPCExampleClient.py”的第10行。插入(example_pb2。InsertRequest(V