我的环境: # cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.3 (Maipo) # docker –version Docker version 1.12.3, build 9858ec7 # 任何时候我尝试运行容器使用-p标志,我最终以下错误: # docker run -p 8080:80 -d drupal cb0a0e6b9b3c582e28e4c0c44bc8360e81d08b480a451a0821649c4363ade528 /usr/bin/docker-latest: Error response from daemon: driver failed programming external connectivity on endpoint reverent_newton (88f66e815eb12c5949965e9434c94855205b5705f07b8ffaa54b065f91a86712): Error starting userland proxy:. # netstat : # netstat -nat | […]
我运行了一个NGINX-PHP7-COMPOSER映像,效果很好,但是在使用Slim Framework的时候,我不得不改变Nginx的默认configuration,使URL重写。 现在它在日志中显示这个错误: 2017-01-21 14:38:34,357信息成功:php-fpm7进入RUNNING状态,进程保持1秒以上(startsecs) 2017-01-21 14:38:34,359信息成功:nginx进入RUNNING状态,进程保持1秒以上(startsecs) 2017/01/21 14:38:37 [错误] 15#15:* 1连接()失败(111:连接被拒绝),当连接到上游时,客户端:172.18.0.1,服务器:auth-api,请求:“GET / hello HTTP / 1.1“,上行:”fastcgi://172.18.0.6:9000“,主机:”localhost:9100“ “GET / hello HTTP / 1.1”502 537“ – ”“Mozilla / 5.0(Macintosh; Intel Mac OS X 10_12_2)AppleWebKit / 537.36( KHTML,像Gecko)Chrome / 55.0.2883.95 Safari / 537.36“ 我装载的configuration文件被加载(我用nginx -T检查了bash): server { listen 80; server_name auth-api; index index.php; root /var/www/html; location / […]
我正在做一个Docker Swarm(Docker 1.13.0)。 多个环境(又名叠加networking)将在这个群体中运行。 一个环境将是一个给定的Drupal网站的test , staging或production 。 传统上,我们试图在整个test , staging和production保持configuration尽可能相似。 例如,访问MariaDB(Drupal使用的)的主机名在这些环境中都是drupaldb 。 我们现在正在迁移到Docker Swarm,但是我们意识到服务名称必须是唯一的。 服务名称也成为主机名。 这意味着在遇到麻烦之前我们只能使用drupaldb一次。 用我目前的知识,我们必须为每个环境使用不同的主机名。 我找不到在Docker中为服务设置别名的方法,手动维护别名似乎无法实现服务发现的全部目的。 看起来我们必须使用服务名称,例如siteA_drupaldb_test , siteA_drupaldb_staging和siteA_drupaldb_prod 。 这很麻烦,而且意味着我们必须维护很多不同的configuration文件,这些configuration文件是Drupal站点引导的。 有没有办法启动一个服务,并分配一个额外的别名或主机名到服务?
我创build了两个dockernetworking。 docker network create –subnet=172.18.0.0/16 Docker_network_1 docker network create –subnet=172.19.0.0/16 Docker_network_2 在他们每一个我运行两个不同的容器: docker run –rm -it –name Container_1 –net Docker_network_1 alpine /bin/sh docker run –rm -it –name Container_2 –net Docker_network_2 alpine /bin/sh Container_1具有IP 172.18.0.2而Container_2具有IP 172.19.0.2 。 从Container_1中,我可以ping属于Docker_network_2接口IP 172.19.0.1 ,但无法Ping通Container_2 IP 172.19.0.2 。 我不明白为什么因为我的主机上的“路由”似乎是正确的: #route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref […]
我在同一台机器上有几个Docker容器,其中一个运行OpenVPN服务器,所以它有networking接口tun0 ( 192.168.255.1 )。 该虚拟专用networking远程具有一个客户端192.168.255.2 。 我需要能够从另一个docker集装箱或主机与远程客户端进行通信,就好像它们将在同一个本地networking中一样。 我在主机上添加了路由: # ip route add 192.168.255.0/24 dev docker0 现在我可以ping 192.168.255.1 (VPN服务器),但客户端无法访问: # ping 192.168.255.2 PING 192.168.255.2 (192.168.255.2) 56(84) bytes of data. From 172.17.0.1 icmp_seq=1 Destination Host Unreachable From 172.17.0.1 icmp_seq=2 Destination Host Unreachable From 172.17.0.1 icmp_seq=3 Destination Host Unreachable 我尝试TAP和TUN OpenVPN设备模式,默认和子网拓扑 – 没有帮助
我在Docker中使用NGINX,并使用2节点服务。 负载平衡正在工作。 不知道这是怎么回事,但是我的页面加载到ping1,然后从服务ping2加载CSS文件,然后从ping1加载下一个文件,…我认为这主要是一个完整的页面加载从ping1和从ping2下一个。 哪一个更标准? 这里是docker-compose.yml version: "2" services: ping1: ports: – "80" build: context: ./1 dockerfile: Dockerfile networks: – front-tier ping2: build: context: ./1 dockerfile: Dockerfile networks: – front-tier nginx: build: ./nginx ports: – "80:80" networks: – front-tier networks: front-tier: driver: bridge 至于我的第二个问题,我试图想象如何使用Jenkins来取消ping2,更新它,然后把它提出来,然后对ping1做同样的事情。 现在我只是手动testing,并使用 docker-compose stop ping2 服务停止运行,但是nginx需要一段时间才能实现,并通过ping1进行路由。 我在Chrome上加载80端口,第一个请求是通过ping1的页面加载,第二个是CSS文件,这将是ping2,从ping1加载需要18-90秒之间的任何时间,只是说整个时间“待定” 。 NGINX错误 我如何解决这个问题,在路由到上游之前检查,如果它是“健康的” ,也许通过我手动设置端点? 这里是nginx.conf events […]
我有一个Debian 8 Jessie服务器,我想升级我的内核到至less版本4,以便使用Docker覆盖fs。 我目前的内核是: $ uname -r 3.16.0-4-amd64 我遵循一个指导,指出将backports存储库添加到/etc/apt/sources.list文件。 我添加了这一行: deb http://httpredir.debian.org/debian jessie-backports main 我做了apt-get update ,现在是apt-cache search linux-image的输出: linux-headers-3.16.0-4-amd64 – Header files for Linux 3.16.0-4-amd64 linux-image-3.16.0-4-amd64 – Linux 3.16 for 64-bit PCs linux-image-3.16.0-4-amd64-dbg – Debugging symbols for Linux 3.16.0-4-amd64 linux-image-amd64 – Linux for 64-bit PCs (meta-package) linux-image-amd64-dbg – Debugging symbols for Linux amd64 configuration […]
我创build了一个VPS并添加了其他IP作为别名。 所以我的/etc/network/interfaces看起来像这样: auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.xx91 netmask 255.255.255.255 post-up /sbin/ip route add 192.99.68.1 dev eth0 post-up /sbin/ip route add default via 192.99.68.1 pre-down /sbin/ip route del default via 192.99.68.1 pre-down /sbin/ip route del 192.99.68.1 dev eth0 dns-nameserver 213.186.33.99 dns-search vps.ovh.ca # below is the additional […]
根据Docker文档 ,链接被描述为“遗留”。 特别是有这样的警告: 警告: – 链接标志是Docker的旧版function。 它可能最终被删除。 除非您绝对需要继续使用它,否则我们build议您使用用户定义的networking来促进两个容器之间的通信,而不是使用–link。 用户定义的networking不支持您可以使用的一个function – 链接是在容器之间共享环境variables。 但是,您可以使用其他机制(如卷)以更受控制的方式共享容器之间的环境variables。 相反,Docker Compose也有一个“链接”function,根据Docker Compose文档 不会弃用。 Docker“遗留容器链接”function和Docker Compose的“链接”部分之间是否有任何关系? 如果是这样,为什么他们在一个而不是在另一个? 如果不是,他们为什么被称为“链接”? ( 我最初在Docker论坛上提出这个问题 ,但没有得到答复)。
我的Spring Boot API有问题,我将它与Docker和Nginx一起用作反向代理。 目前,我正在与一个REST web服务一起build立一个网站。 Web服务器和REST Web服务(Spring Boot)在两个不同的Docker容器中运行。 为了提供HTTPS(encryption),我使用NGINX作为反向代理(也作为Docker-Container运行)。 现在我在我的nginx.conf使用以下设置来启用外部访问我的Spring API。 upstream spring-backend { server spring:8081; } # … some other configuration stuff server { listen 7332; ssl on; # … ssl-config # all other traffic location / { # Specify the fields added/redefined to the request header passed to the proxied server. proxy_set_header Upgrade […]