Tag: 套接字

最大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 db容器正在运行。 另一个使用pid <id>的进程使用unix套接字文件

我试图运行一个docker的MySQL容器与初始化数据库根据此消息提供的指令https://stackoverflow.com/a/29150538/6086816 。 第一次运行后,它工作正常,但第二次运行,试图从脚本执行/ usr / sbin / mysqld后,我得到这个错误: db_1 | 2016-03-19T14:50:14.819377Z 0 [错误] pid 10的另一个进程是使用unix套接字文件。 db_1 | 2016-03-19T14:50:14.819498Z 0 [错误]无法设置unix套接字locking文件。 … mdir_db_1用代码1退出 可能是什么原因呢?

docker中的SO_DEBUG套接字选项的权限被拒绝

我已经隔离了在我的testing用例中抛出的Permission Deniedexception这些行 – … ASSERT_EQ(0, getsockopt(s.getSocket(), SOL_SOCKET, SO_DEBUG, &optval, &optlen)); … … ASSERT_EQ(0, setsockopt(s.getSocket(), SOL_SOCKET, SO_DEBUG, &optval, optlen)); … 这些工作正常运行testing可执行文件与我的本地机器上的sudo例如。 sudo ./test/testexe和所有的testing通过,不会引发exception。 要运行这些没有sudo ,我已经尝试在执行testing之前设置function,例如。 sudo setcap "cap_net_admin+ep cap_net_raw+ep" test/testexe这次在我的本地机器上再次运行正常,没有sudo 。 Docker中没有任何一个方法可以工作的问题 – 既没有sudo帮助,也没有抛出exception, setcap方法也成功地设置了这些function,但是当执行testing的时候,错误的Operation not permitted是Operation not permitted 。 那么是否有任何其他的方式成功地运行SO_DEBUG行,但没有提升特权运行docker,因为我只有在我的CI平台的docker集装箱内获得控制。

osx docker最大连接数限制

我在macOS Sierra(版本10.12.5)上安装了Docker-ce(版本17.03.1-ce-mac12 17661) 我创build了一个容器并运行一个简单的socket echo服务器。 然后尝试从主机连接到容器的回显服务器。 最初,当打开的套接字数量达到370,发生连接失败,我通过谷歌searchfind以下内容。 https://github.com/docker/for-mac/issues/1009 总而言之,mac的docker拥有自己的最大连接数。 我根据这个内容适度修改了最大连接数。 我以下面的方式连接到docker主机。 http://pnasrat.github.io/2016/04/27/inside-docker-for-os-x-ii 我也更改了docker主机的ulimitconfiguration,并相应地更改了osx和容器设置。 再一次,我又试了一次,但是这次sockets数量超过了上面提到的370的限制,但是也是在930〜940左右被封锁了。 我试图改变这样的设置,但它并没有变好。 请注意,在Ubuntu服务器上运行的docker不需要更改任何设置,并且在没有任何套接字限制的情况下运行良好。 运行在Ubuntu上的Docker容器内运行的echo服务器至less可以维护4000个套接字。 这个问题只发生在mac的docker中。 如果你知道这种情况,谁能提出一个解决scheme? 谢谢。

运行多个Docker虚拟机的服务器如何处理TCP限制?

在真正的负载下,服务器似乎没有足够快地“回收”TCP连接。 我正在考虑使用Docker来处理每秒比API更高的请求数量,通过在一台机器上创build多个节点服务器的实例来使用多台机器。 如果设置了以下sysctl设置,回收似乎会发生得更快,但是对于存在多less个套接字仍然有一个严格的限制: net.ipv4.ip_local_port_range='1024 65000' net.ipv4.tcp_tw_reuse='1' net.ipv4.tcp_fin_timeout='15 当运行多个docker实例时,tcp连接上的总上限是否等于“父”机器可以处理的最大tcp连接的数量?

具有共享X11套接字的Docker:为什么在容器外“启动”Firefox?

我有以下情况: 我设置了一个可以访问X11套接字的Docker容器,本质上是这样的: https : //stackoverflow.com/a/25334301 然后我在容器中安装了Firefox,并使用bash中的“firefox”命令启动它。 我注意到:如果在容器中启动Firefox时,Firefox已经在我的主机上运行,​​它实际上已经“逃脱”了容器,因为它只是打开了Firefox主机实例的一个新窗口。 因此,它可以访问主机上的所有内容,容器变得毫无用处。 这也反过来反之亦然:如果Firefox没有在主机上运行,​​我在容器中启动一个实例,它真的在容器中运行。 如果我在主机上启动Firefox,新的实例也在容器中运行。 但是,我无法用gvim而不是Firefox重现这种行为。 我很清楚X11套接字共享中固有的安全问题,但是我不能解释我上面描述的情况。 为什么一个容器在其受限制的环境之外启动一个“过程”—或者说一个窗口? 而且我的主机系统甚至有可能仅仅是因为同一个程序已经在一个容器中运行了而在一个容器中启动一个进程呢? (请注意,我不知道如何调用除“process”以外的程序的graphics化实例,虽然在这种情况下可能不是一个真正的过程) 系统:Ubuntu GNOME 14.10,Docker 1.5,Ubuntu:最新的Docker镜像。 更新:如果我使用-new-instance标志启动Firefox,则不会发生这种-new-instance ,所以它似乎是一个比X11套接字问题更多的Firefox问题。 更新2:似乎也发生在其他情况下,例如使用ssh与X-forwarding: https://unix.stackexchange.com/questions/104476/why-starting-firefox-from-command-line-in-vm-starts-the-firefox-in-the-host-ma 和 https://superuser.com/questions/462055/launching-firefox-on-remote-server-causes-local-firefox-to-open-the-page-instead 现在的问题是,Firefox如何做到这一点? 他们用什么样的X11巫术来查明Firefox是否已经在运行?

Docker:使用套接字在2个容器之间进行通信

我有2个Docker容器:App&Web。 App – 简单容器与PHP应用程序代码。 它仅用于存储并将代码交付给远程Docker主机。 应用图片Dockerfile: FROM debian:jessie COPY . /var/www/app/ VOLUME ["/var/www/app"] CMD ["true"] Web – Web服务容器,由PHP-FPM + Nginx组成。 Web图像Dockerfile: FROM nginx # Remove default nginx configs. RUN rm -f /etc/nginx/conf.d/* # Install packages RUN apt-get update && apt-get install -my \ supervisor \ curl \ wget \ php5-cli \ php5-curl \ php5-fpm \ […]