首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在一台主机上运行多个docker WordPress

如何在一台主机上运行多个docker WordPress
EN

Stack Overflow用户
提问于 2020-09-01 15:29:04
回答 2查看 273关注 0票数 0

我是码头新手。

我想在一台主机上部署多个wordpress容器。我想到了两个解决方案,但我不知道它们是不是正确的方法。

解决方案-1:使用wordpress图像

代码语言:javascript
复制
docker run --name wordpress-1 -dp 8001:80 -e some-database-env wordpress
docker run --name wordpress-2 -dp 8002:80 -e some-database-env wordpress

我认为wordpress的图片包含了web server,php,fpm,所以我可以在http://localhost:8001运行的时候访问它。当我需要通过80端口向Internet公开两个服务时,我需要一个前端服务(nginx)来将请求转发给这两个服务,对吗?

解决方案-2:使用5.5.0-php7.3-fpm-alpine镜像

此图像较小,它只是从fpm打开了一个端口9000。好像没有web服务器。我试着用它来配置nginx,但不是工作。

代码语言:javascript
复制
docker run --name wordpress-1 -dp 9001:9000 -e some-database-env wordpress:5.5.0-php7.3-fpm-alpine

nginx配置

代码语言:javascript
复制
    server {
        listen 9993;
        server_name localhost;
        
        index index.php index.html;

        location / {
            try_files $uri $uri/ /index.php?$args;
        }

        location ~ \.php$ {
            # I have try use container's ip, but network not work(ping not recieved)
            fastcgi_pass 127.0.0.1:9001;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }

        location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
            expires max;
        }
    }

找不到浏览器显示文件

并得到nginx错误

代码语言:javascript
复制
2020/09/01 21:26:28 [error] 59036#0: *9 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://[::1]:9001", host: "localhost:9993"

solution-1是在一台主机上部署多个wordpress容器的正确方式吗?

如何使用5.5.0-php7.3-fpm-alpine镜像在一台主机上部署多个wordpress容器?

EN

回答 2

Stack Overflow用户

发布于 2020-09-01 15:36:00

它不会侦听IP地址,因此将IP地址更改为:

代码语言:javascript
复制
fastcgi_pass 127.0.0.1:9001;

至:

代码语言:javascript
复制
fastcgi_pass 172.17.0.1:9001;

IP地址172.17.0.1是码头容器网络的IP地址网关。

或更改为:

代码语言:javascript
复制
fastcgi_pass ip_address_of_wordpress_container:9001;
票数 0
EN

Stack Overflow用户

发布于 2020-09-01 16:25:31

只需继续您的第一个选项,并将NGINX设置为负载均衡器,并具有如下配置:

代码语言:javascript
复制
http {
    upstream app {
        server wordpress-1:80;
        server wordpress-1:80;
    }
}

为了更简单,可以使用docker-compose。

Ref - nginx load balancer - Docker compose

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63683205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档