Tag: tcp

在容器中运行selenium / capybaratesting时,Docker“无法打开TCP连接到127.0.0.1:4444”

我在一个ruby应用程序中有一些Selenium Webdriver / Capybara自动化设置。 与此同时在一个VirtualBox虚拟机使用Linux我有一个docker容器Selenium网格docker run -d -p 4444:4444 –name selenium-hub -e GRID_TIMEOUT=120000 selenium/hub:2.53.0和一个firefox节点docker run -d –link selenium-hub:hub selenium/node-firefox:2.53.0 。 在虚拟机上添加一个DNS条目到docker_opts之后,在我的主机上运行我的Seleniumtesting(在我的虚拟机上使用网格),一切正常。 在这之后,我将自动化代码设置在我的虚拟机上的一个ruby容器中,位于网格和容器的旁边。 容器build立得很好。 我也能够附加到它没有问题,所有我的代码是在那里按预期。 从我的自动化容器中的terminal,如果试图运行一个规范前。 rspec spec/some_spec.rb我会得到一个连接拒绝错误 “无法打开TCP连接到127.0.0.1:4444(Connection refused – connect(2)for \”127.0.0.1 \“port 4444)” 在这个问题上search了18个结果,我所看到的唯一可行的事情就是提到创build一个桥梁,我不太了解。 任何build议如何纠正这将不胜感激。

从docker cintainer内部连接到docker守护进程

我试图configurationdocker守护进程,所以我可以连接到docker集装箱内我开始.. 所以我改变了/etc/docker/daemon.json { "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"] } 所以,我通过docker桥连接到它..但是,当我重新启动docker我得到 netstat -tunlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 3728/mysqld tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 24253/redis-server tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3756/nginx tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3634/sshd tcp 0 […]

TCP代理:保持连接,而后端不可用

在Docker设置的上下文中,我想使用类似大使的模式来允许一些容器(例如数据库服务器)正常重启,而不必重新启动所有依赖的容器(例如web服务器)并且没有错误消息,因为“数据库服务器不可用“。 因此,我想知道:是否有一个TCP代理软件(在大使容器中运行)可以在后端closures时接受和保持连接,并在返回时重新build立连接。 在Web和数据库服务器的情况下,它应该出现在Web服务器上,就好像数据库服务器只需要比平常更长的时间来回复(比如30秒),但最终会回答查询。 这样的事情可能吗? 有没有一种工具可以实现这样的行为?

最大TCP连接(使用不同的IP /容器)

我正在阅读这个答案: 增加在Linux中的最大数量的TCP / IP连接 我的设置如下。 我有多个容器,每个容器都有自己的IP,并通过tcp(它的所有相同的机器)与其中的进程进行通信。 因此,所有进程都使用相同的端口,但拥有自己独特的IP。 这是否意味着我不会遇到上面描述的tcp限制(因为那些似乎是基于端口的?) Controller Process -> container 1 [with unique IP, port X] -> container 2 [with unique IP, port X] -> container 3 [with unique IP, port X] -> container 5 [with unique IP, port X] 道歉,如果这个问题是基本措词,新东西的一些东西。 很高兴提供任何额外的信息。

docker工尝试docker在获取TCP连接拒绝错误

我试图在docker上运行docker,并得到TCP 127.0.0.1:5000:连接被拒绝 。 有人可以解释为什么发生这种情况,我可以解决这个问题。 这是我累了: docker run -it –privileged –name docker-server-test -d docker:1.7-dind docker run –rm –link docker-server:docker docker:1.7 pull my-server:5000/qe/busybox Unable to find image 'docker:1.7' locally Trying to pull repository docker.io/library/docker … 1.7: Pulling from library/docker f4fddc471ec2: Already exists da0daae25b21: Already exists 413668359dd0: Already exists ab205815427f: Already exists e8ace195c6b6: Already exists 2129588b76a3: Already exists […]

无法通过Virtual Box从Docker容器访问HTTPS服务

我从在Vbox上设置的docker容器运行https web服务。 这是我的configuration: VBOX docker 不幸的是, https://127.0.0.1是不可访问的。 命令docker run -it –rm –net=container:$cont_id –pid=container:$cont_id busybox netstat -lntp的输出docker run -it –rm –net=container:$cont_id –pid=container:$cont_id busybox netstat -lntp是: Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 21/sshd tcp 0 0 127.0.0.1:444 0.0.0.0:* LISTEN 319/node tcp 0 […]

在Docker容器中打开DGRAM套接字失败(权限被拒绝)

我正在运行一个应用程序,它build立并发送ICMP ECHO请求到几个不同的IP地址。 该应用程序是用Crystal编写的。 当试图从晶体泊坞窗容器内打开一个套接字时,Crystal引发一个exception:权限被拒绝。 从容器内,我没有问题运行ping 8.8.8.8 。 在macos上运行应用程序,我没有问题。 阅读apparmor和seccomp上的https://docs.docker.com/engine/security/apparmor/和https://docs.docker.com/engine/security/seccomp/页面我确定find了解决scheme,但问题仍然没有解决,即使作为docker run –rm –security-opt seccomp=unconfined –security-opt apparmor=unconfined socket_permission 更新/编辑 :挖掘到capabilities(7) ,我添加了以下行到我的dockerfile: RUN setcap cap_net_raw+ep bin/ping试图让套接字被打开,但没有改变。 谢谢! 相关的水晶sockets代码,完整的工作代码示例如下: # send request address = Socket::IPAddress.new host, 0 socket = IPSocket.new Socket::Family::INET, Socket::Type::DGRAM, Socket::Protocol::ICMP socket.send slice, to: address Dockerfile: FROM crystallang/crystal:0.23.1 WORKDIR /opt COPY src/ping.cr src/ RUN mkdir bin RUN […]

Docker阻塞高负载的传出连接?

我们有一个node.js web服务器,它向外部API发送一些传出的http请求。 在docker上使用dokku运行。 加载一段时间后(30req / s),这些传出请求不再得到响应。 下面是我用常量req / s进行testing时所做的一个图表: incoming和outgoing是并发请求的数量(不是初始化请求的数量)。 (在图中很难看出来,但是在每次约10个请求时它是相当稳定的。) response time仅适用于外部请求。 你可以清楚地看到,他们突然开始失败(我们的1000毫秒超时)。 我们发送的请求越多,遇到这个问题的速度就越快,所以我们必须对每个请求都有一些限制。 我使用了netstat -ant | tail -n +3 | wc -l netstat -ant | tail -n +3 | wc -l netstat -ant | tail -n +3 | wc -l在主机上获得打开的连接数,但是只有〜450(大部分是TIME_WAIT )。 这不应该达到套接字限制。 我们也没有达到任何内存或CPU的限制。 我也尝试在Docker外的同一台机器上运行相同的应用程序, 它只发生在docker 。

TCP接收数据包,但忽略它们

我有一个非常奇怪的networking问题。 实际的networkingconfiguration相当复杂,因为我使用Openstack和Docker来构build虚拟networking。 然而,问题不在这里,因为我正在捕获我的主机接口,并以正确的方式看到所有的数据包….但由于某些原因,我不知道,似乎TCP忽略了它们,尽pipe它们有已收到:它不会发送ACK,并且不会将数据发送到应用程序。 在我的试验中,我从主机(192.168.4.100)向服务器jetty(IP 192.168.4.3)发送了一个HTML页面的HTTP GET请求。 我看到用Wireshark在192.168.4.100上捕获的是: 192.168.4.100 -> SYN -> 192.168.4.3 192.168.4.3 -> SYN, ACK -> 192.168.4.100 192.168.4.100 -> ACK -> 192.168.4.3 192.168.4.100 -> GET / HTTP/1.1 -> 192.168.4.3 192.168.4.3 -> ACK -> 192.168.4.100 192.168.4.3 -> Fragment 1 of HTTP 200 OK response -> 192.168.4.100 192.168.4.3 -> Fragment 2 of HTTP 200 OK response […]

ZeroMQ无法在上的Docker上使用.bind() – 地址已被使用。 为什么?

尝试在0.0.0.0:5555地址尝试在Docker容器中通过Rancher Cattle运行它时,ZeroMQ套接字遇到了一些问题。 每次我尝试运行它,我都会得到同样的错误: zmq.error.ZMQError:地址已被使用。 试图做我的EXPOSE 5555和EXPOSE 5555/tcp ,但它没有帮助我。 这是我的代码的一部分: … self.context = zmq.Context() self.socket = self.context.socket(zmq.PUB) self.socket.bind('tcp://%s:%d' % ('0.0.0.0', 5555)) … 也许有人有同样的问题。 如何解决?