Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用nginx代理运行wordpress docker映像?_Wordpress_Docker_Nginx_Nginx Reverse Proxy_Jwilder Nginx Proxy - Fatal编程技术网

如何使用nginx代理运行wordpress docker映像?

如何使用nginx代理运行wordpress docker映像?,wordpress,docker,nginx,nginx-reverse-proxy,jwilder-nginx-proxy,Wordpress,Docker,Nginx,Nginx Reverse Proxy,Jwilder Nginx Proxy,我正试图在Ubuntu VPS上的docker容器中运行一个应用程序 首先,我使用以下命令运行nginx代理服务器 docker run -d \ -p 80:80 \ -p 443:443 \ --name proxy_server \ --net nginx-proxy-network \ -v /etc/certificates:/etc/nginx/certs \ -v /var/run/docker.sock:/tmp/docker.sock:ro \ jwilder/nginx-pr

我正试图在Ubuntu VPS上的docker容器中运行一个应用程序

首先,我使用以下命令运行nginx代理服务器

docker run -d \
-p 80:80 \
-p 443:443 \
--name proxy_server \
--net nginx-proxy-network \
-v /etc/certificates:/etc/nginx/certs \
-v /var/run/docker.sock:/tmp/docker.sock:ro \
jwilder/nginx-proxy
docker run -d \
--name mysql_db \
--net nginx-proxy-network \
-e MYSQL_DATABASE=db1 -e \
MYSQL_USER=db1 -e \
MYSQL_PASSWORD=db1 -e \
MYSQL_ROOT_PASSWORD=db12 \
-v mysql_server_data:/var/lib/mysql \
mysql:latest
root:~# docker exec -it mysql_db /bin/bash
root@dd7643384f76:/# mysql -h localhost -u root -p
mysql> show databases;
docker run -d \
--name wordpress \
--expose 80 \
--net nginx-proxy-network \
-e DEFAULT_HOST=usa.mydomain.com \
-e WORDPRESS_DB_HOST=mysql_db:3306 \
-e WORDPRESS_DB_NAME=db1 \
-e WORDPRESS_DB_USER=db1 \
-e WORDPRESS_DB_PASSWORD=db1 \
-v wordpress:/var/www/html \
wordpress:latest
然后,我使用以下命令运行mysql数据库服务器

docker run -d \
-p 80:80 \
-p 443:443 \
--name proxy_server \
--net nginx-proxy-network \
-v /etc/certificates:/etc/nginx/certs \
-v /var/run/docker.sock:/tmp/docker.sock:ro \
jwilder/nginx-proxy
docker run -d \
--name mysql_db \
--net nginx-proxy-network \
-e MYSQL_DATABASE=db1 -e \
MYSQL_USER=db1 -e \
MYSQL_PASSWORD=db1 -e \
MYSQL_ROOT_PASSWORD=db12 \
-v mysql_server_data:/var/lib/mysql \
mysql:latest
root:~# docker exec -it mysql_db /bin/bash
root@dd7643384f76:/# mysql -h localhost -u root -p
mysql> show databases;
docker run -d \
--name wordpress \
--expose 80 \
--net nginx-proxy-network \
-e DEFAULT_HOST=usa.mydomain.com \
-e WORDPRESS_DB_HOST=mysql_db:3306 \
-e WORDPRESS_DB_NAME=db1 \
-e WORDPRESS_DB_USER=db1 \
-e WORDPRESS_DB_PASSWORD=db1 \
-v wordpress:/var/www/html \
wordpress:latest
通过使用以下命令连接到MySql服务器,我可以验证MySql服务器是否正在运行

docker run -d \
-p 80:80 \
-p 443:443 \
--name proxy_server \
--net nginx-proxy-network \
-v /etc/certificates:/etc/nginx/certs \
-v /var/run/docker.sock:/tmp/docker.sock:ro \
jwilder/nginx-proxy
docker run -d \
--name mysql_db \
--net nginx-proxy-network \
-e MYSQL_DATABASE=db1 -e \
MYSQL_USER=db1 -e \
MYSQL_PASSWORD=db1 -e \
MYSQL_ROOT_PASSWORD=db12 \
-v mysql_server_data:/var/lib/mysql \
mysql:latest
root:~# docker exec -it mysql_db /bin/bash
root@dd7643384f76:/# mysql -h localhost -u root -p
mysql> show databases;
docker run -d \
--name wordpress \
--expose 80 \
--net nginx-proxy-network \
-e DEFAULT_HOST=usa.mydomain.com \
-e WORDPRESS_DB_HOST=mysql_db:3306 \
-e WORDPRESS_DB_NAME=db1 \
-e WORDPRESS_DB_USER=db1 \
-e WORDPRESS_DB_PASSWORD=db1 \
-v wordpress:/var/www/html \
wordpress:latest
现在运行了
nginx proxy
mysql\u db
图像,我想在usa.mydomain.com上代理WordPress图像。为此,我运行以下命令

docker run -d \
-p 80:80 \
-p 443:443 \
--name proxy_server \
--net nginx-proxy-network \
-v /etc/certificates:/etc/nginx/certs \
-v /var/run/docker.sock:/tmp/docker.sock:ro \
jwilder/nginx-proxy
docker run -d \
--name mysql_db \
--net nginx-proxy-network \
-e MYSQL_DATABASE=db1 -e \
MYSQL_USER=db1 -e \
MYSQL_PASSWORD=db1 -e \
MYSQL_ROOT_PASSWORD=db12 \
-v mysql_server_data:/var/lib/mysql \
mysql:latest
root:~# docker exec -it mysql_db /bin/bash
root@dd7643384f76:/# mysql -h localhost -u root -p
mysql> show databases;
docker run -d \
--name wordpress \
--expose 80 \
--net nginx-proxy-network \
-e DEFAULT_HOST=usa.mydomain.com \
-e WORDPRESS_DB_HOST=mysql_db:3306 \
-e WORDPRESS_DB_NAME=db1 \
-e WORDPRESS_DB_USER=db1 \
-e WORDPRESS_DB_PASSWORD=db1 \
-v wordpress:/var/www/html \
wordpress:latest
通过执行
docker ps-a

然而,当我使用浏览器时,我得到HTTP错误503

503服务暂时不可用nginx/1.17.5

通过使用命令行my machine执行以下操作,我验证了usa.mydomain.com是否指向服务器的IP地址

ipconfig /flushdns
ping usa.mydomain.com
即使当我试图浏览我的服务器的ip地址,我得到相同的503错误


什么可能导致此问题?

nginx不会自动代理。你的配置看起来怎么样?我没有看到你挂载一个,只有一个证书。出于可疑的原因,你挂载了docker套接字。这被认为是一种安全风险。你在问什么配置文件?我认为nginx代理背后的整个想法是它自动为您完成这项工作。我只是按照他们需要的文档进行操作。
/var/run/docker.sock:/tmp/docker.sock:ro
。无论你在读什么,我都建议删除该文档。您不需要安装套接字来设置代理和WordPress容器。我说的是我正在阅读的@TheFool,我没有一个
nging.conf
,据我所知,
jwilder/nginx代理
图像会自动配置使用主机的应用程序。我知道,我不知道这个jwilder/nginx代理。这是安装套接字,以便它可以使用套接字启动运行docker-gen的同级容器。docker-gen实际上正在生成我要查找的nginx.conf。这是一个相当复杂的设置,可能有点过头了。我可以教你如何做得更容易。从地面向上。如果你有闲聊什么的。