Tag: 泊坞群

在Docker Swarm中连续部署数据库

我正忙于为我的移动应用程序开发API,现在正在考虑部署后端解决scheme。 这些组件相当简单:nginx,.NET核心应用程序和postgresql持久性。 如果我需要快速扩展,我想首先在一个节点上开始使用Docker Swarm。 为Postgresql提供一个单独的数据卷看起来是一条可行的路线,但是我无法find有关升级和数据库迁移的任何build议。 当我需要升级Postgresql映像(不需要pg_upgrade的小升级)时,这是否必须是手动操作,还是可以通过滚动升级来pipe理? 要求将是在这种情况发生时closures所有应用程序实例。 同样,如何pipe理数据库迁移,例如静态数据/模式更改? 我将需要所有的应用程序实例退出,完成迁移,然后重新启动。 任何想法不胜感激。

Docker群集与nginx作为caching:502坏的网关

我已经使用Docker swarm来创build1个pipe理员和2个worker,每个人都在vm上(由docker-machine创build)。 我创build了一个caching的“cdn服务”,或者将请求传递给后端(一个tomcat容器,端口8080)。 我的docker版本是1.13-RC2 这是我的nginx镜像的configuration文件: proxy_cache_path /tmp/nginx levels=1:2 keys_zone=my_zone:10m inactive=60m; proxy_cache_key "$scheme$request_method$host$request_uri"; proxy_cache_methods GET HEAD POST; proxy_cache_valid 200 206 100m; proxy_ignore_headers Set-Cookie; add_header 'Access-Control-Allow-Origin' '*' always; add_header 'Access-Control-Allow-Headers' 'Range'; server { listen 80; server_name 172.17.0.1; #charset koi8-r; #access_log /var/log/nginx/log/host.access.log main; location = /example-av1.mpd { add_header 'Access-Control-Allow-Origin' '*'; proxy_cache my_zone; add_header X-Proxy-Cache $upstream_cache_status; proxy_set_header X-Real-IP $remote_addr; […]

在docker swarm容器(副本)中使用pid 1重新启动进程

我有Docker群中运行的docker nginx。 我想改变nginx的设置,而无需重启容器。 我更换了容器内的nginx conf文件,但无法重新加载configuration 试着 root@xxx:/# service nginx Usage: /etc/init.d/nginx {start|stop|status|restart|reload|force-reload|upgrade|configtest} root@xxx:/# service nginx reload [….] Reloading nginx: nginxstart-stop-daemon: warning: failed to kill 1: Permission denied failed! root@xxx:/# service nginx force-reload [….] Reloading nginx: nginxstart-stop-daemon: warning: failed to kill 1: Permission denied failed! root@xxx:/# nginx -s reload 2017/03/17 12:57:05 [notice] 281#281: signal process started […]

如何从Docker容器中获取外部主机的IP地址

我们正在从CoreOS转换到CentOS,从舰队到群集。 我需要确定从容器内运行docker的机器的ip地址。 问题是我们使用nginx来确定我们的docker集群中的哪台机器运行哪个服务。 为了使这个工作,我们需要容器能够发布到我们的etcd存储库它所在的机器的IP地址。 到目前为止,我所见过的所有东西都能够让我到外部机器的IP地址172.17.0.1,但是我们所有的docker上的所有容器都有这个私有地址。 我需要一个外部地址,nginx可以用来获得服务。 我可以使用“ – 主机名ip … ”选项或“-e EXT_HOST_IP = ip … ”选项来设置一个IP地址,但是如果我在“docker run”命令中包含这些选项, docker命令将扩展'ip …'并返回当前机器的IP地址 – 不是群集最终运行容器的机器。 到目前为止我所得到的最好的结果是在主机上创build一个包含主机IP地址的文件/目录。 然后,我可以使用docker'-v'选项来挂载容器中的目录,并从中获取ip地址。 这似乎应该有一个更简单的方法来做到这一点。

用Docker Swarmpipe理同一主机上的多个nginx容器

我必须pipe理多个相同的nginx容器使用它们作为CDN。 现在,因为这是一个学位论文工作,老师告诉我,我可以使用默认的循环负载均衡器来使用Docker Swarm进行pipe理。 我的架构是一个浏览器客户端,即CDN(多个nginx容器作为代理caching)和一个tomcat后端(托pipe多媒体文件)。 我的问题是:有可能用docker swarm来pipe理多个容器(我在docker服务中头像“副本”)? 如果这是可能的,那怎么办呢? 我想有多个容器在同一主机而不是使用多个虚拟机。