can';t链接nginx与docker中的ghost

can';t链接nginx与docker中的ghost,nginx,docker,Nginx,Docker,我正在digitalocean上部署一个ghost服务器,端口默认为2368 docker run -d --name ghost ghost 我还部署了一个nginx服务器 docker run -d -p 80:80 -p 443:443 --name nginx --link ghost:ghost -v /home/abc/nginx/sites-enabled:/etc/nginx/sites-enabled nginx 在/home/abc/nginx/sites enabled

我正在digitalocean上部署一个ghost服务器,端口默认为2368

docker run -d --name ghost ghost
我还部署了一个nginx服务器

docker run -d -p 80:80 -p 443:443 --name nginx --link ghost:ghost -v /home/abc/nginx/sites-enabled:/etc/nginx/sites-enabled nginx
在/home/abc/nginx/sites enabled路径下,我有一个名为ghost的配置文件

server {
  listen 0.0.0.0:80;
  server_name mydomain; 
  access_log /var/log/nginx/mydomain.com.log; 

  location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header HOST $http_host;
      proxy_set_header X-NginX-Proxy true;

      proxy_pass http://ghost:2368;
      proxy_redirect off;
  }
}
终于

docker restart nginx,ghost
我可以清楚地看到nginx和ghost容器运行良好,并且转到服务器的IP地址,我可以看到nginx的欢迎页面,上面写着

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

但是转到域,它可以找到服务器,有时也会显示nginx欢迎页面

首先,您的卷映射应该是
-v/home/abc/nginx/sites enabled:/etc/nginx/conf.d
,而不是
site enabled


其次,由于Nginx在启动时加载DNS条目,并且从不更新,因此Nginx将无法在ghost重新启动后找到您的ghost容器(从而获得一个新的IP地址)。快速修复方法是运行
docker restart ghost nginx
而不是
docker restart nginx ghost

尝试此预设置nginx代理

按照说明运行nginx代理:

docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy
然后您可以简单地运行ghost docker,如下所示:

docker run --name some-blog -d -p 80:2368 -e VIRTUAL_HOST=domain.com -v /home/ghost/someblog/:/var/lib/ghost --restart unless-stopped ghost

我有多个这样的鬼容器设置。

我已经按照你说的做了第二个建议,它不起作用。关于第一个,默认的Nginx站点配置在哪里file@user824624你的Nginx图像是如何制作的?你有公开的Dockerfile吗?嗨,它仍然不工作。没有显示使用命令:docker记录nginx。当转到域时,页面仅显示“web不可用”,而不是欢迎的nginxpage@user824624您的conf文件名必须以
.conf
结尾。您的日志无法工作,因为您设置了访问日志。请删除访问日志行,然后重试。