Tag: dockernetworking

获取与泊坞窗networking相关联的网桥名称

我正在使用“dockernetworking创build – 桥梁mynet”创builddockernetworking。 我想获得与这个dockernetworking关联的网桥名称。 我知道我可以使用“-o”来提供网桥名称。 例如:“docker network create -d bridge -o com.docker.network.bridge.name = mybridge mynet”。 这种方法将与普通的网桥驱动程序一起工作,但在我的情况下,我使用的是一个ovs驱动程序,因此我将networking启动为“docker network create –d ovs mynet”。 如果我在ovs驱动程序中使用“-o”,则不起作用。 请build议我一个方法来获取与networking相关联的网桥名称。 当我创buildnetworking时,正在创build的新桥,已经创build的网桥有一个随机的名称,我可以使用“ifconfig”命令来看到它。

Docker镜像无法创buildnetlink句柄

任何人都可以帮助我理解下面的错误和其他人喜欢它吗? 我search了一下,但没有任何意义的上下文。 我下载了Docker Image,但是容器拒绝启动。 引用的命名空间并不总是26,但可以是20-29之间的任何值。 我将Docker容器启动到EC2实例,并从AWS ECR中拉取图像。 无论重新启动实例还是重新启动docker,错误都是持久的。 docker: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "process_linux.go:334: running prestart hook 0 caused \"error running hook: exit status 1, stdout: , stderr: time=\\\"2017-05- 11T21:00:18Z\\\" level=fatal msg=\\\"failed to create a netlink handle: failed to set into network namespace 26 while creating netlink […]

Mac主机不喜欢Docker容器端口转发

我第一次尝试使用Docker,并试图让Spring Boot web应用程序在Docker容器中运行。 我正在构build应用程序(将其打包成一个独立的jar), 然后将其添加到Docker镜像(这正是我想要的)。 你可以在GitHub上的Bootup repo上find我的SSCCE ,它的README有所有的指令来重现我所看到的。 但基本上: 我把这个web应用程序构build成一个jar包 运行docker build -t bootup . 哪个成功 运行docker run -it -p 9200:9200 -d –name bootup bootup ,然后容器似乎启动就好了,以下是docker ps输出的证据 但是,当我将浏览器指向http://localhost:9200 ,我什么也得不到 docker ps输出: CONTAINER ID IMAGE COMMAND CREATED a8c4ee64a1bc bootup "/bin/sh -c 'java -ja" 2 days ago STATUS PORTS NAMES Up 12 seconds 0.0.0.0:9200->9200/tcp bootup Web应用程序被configuration为在端口9200上运行 , […]

如何链接多个Docker容器并封装结果?

我有一个连接到Neo4j数据库的Node.js Web应用程序。 我想将这些封装在一个Docker镜像中(也使用一个Neo4j Docker容器 ),但是我是一个docker新手,似乎无法弄清楚这一点。 在最新的Docker版本中推荐使用的方法是什么? 我的直觉是运行嵌套在应用程序容器内的Neo4j容器。 但从我读到的,我认为支持/推荐的方法是将容器连接在一起。 我需要的是在这个图像中很好的说明。 但是图片来源的文章对我并不清楚。 无论如何,它正在使用即将被弃用的遗留容器链接 ,而现在推荐使用networking 。 教程或解释将不胜感激。 另外, docker-compose如何适应这一切?

Docker:无法打开从容器到主机的端口

我正在使用Docker for Mac 。 我有一个运行服务器的容器,例如我的服务器运行在端口5000上。我已经暴露了Dockerfile这个端口 当我的容器运行时,我连接到这个容器,并检查,如果这个服务器是否正在运行或通过运行下面的命令,并看到它返回数据(一堆html和javascript) wget -d localhost:5000 注意,我启动这个容器,并通过命令在外部发布端口: docker run -d -p 5000:5000 <docker_image_name> 但在docker主机(是我的Mac和运行埃尔卡皮坦),我打开铬并去寻址localhost:5000 。 它不起作用。 只是一点点,如果我去任何端口,如localhost:4000我看到铬的错误消息,如: This site can't be reached localhost refused to connect. 但是localhost:5000错误信息是: The localhost page isn't working localhost didn't send any data. 所以看起来我已经configuration了一些“有点”的工作,但是出了点问题。 请告诉我如何解决这个问题。

为什么Docker覆盖networking需要达成共识?

刚刚花了我的下午阅读Docker覆盖networking,非常酷的东西。 我似乎无法find一个答案。 根据文件: 如果你安装和使用Docker Swarm,你会自动在你的pipe理者/工作者主机上获得覆盖networking,而不需要再configuration任何东西。 但是 … 如果您只需要跨多个主机的(非Swarm)覆盖networking,则需要使用Consul或ZooKeeper等外部“KV Store”(一致服务器)configuration该networking 我想知道: 为什么?!? 显然,覆盖networking需要同行之间的共识,但我不确定为什么这些“同龄人”甚至是谁。 而我只是猜测 ,在Swarm中,有一些内部/底层共识服务器开箱即用。 是? 没有? 提前致谢!

在同一主机上的不同networking中的Docker容器之间进行通信

任何可能使容器在不同的networking在同一主机进行通信? 请注意,我目前没有使用docker撰写程序。 以下是我所做的一个总结。 我使用以下命令创build了两个networking docker network create –driver bridge mynetwork1 docker network create –driver bridge mynetwork2 然后我使用以下命令在每个创build的networking上运行两个容器: docker run –net=mynetwork1 -it name=mynet1container1 mycontainerimage docker run –net=mynetwork1 -it name=mynet1container2 mycontainerimage docker run –net=mynetwork2 -it name=mynet2container1 mycontainerimage docker run –net=mynetwork2 -it name=mynet2container2 mycontainerimage 然后我使用创build的networking识别每个容器的IP地址 docker network inspect mynetwork1 docker network inspect mynetwork2 使用那些我能够在同一networking中的容器之间进行通信,但是我无法在networking之间的容器之间进行通信。 只有通过将容器添加到同一networking才能进行通信。 非常感谢…

Docker Volume Containers用于数据库,日志和指标

我有一个使用embedded式数据库的应用程序,并且还生成以下目录结构的日志和原始指标: /opt/myapp/data/ database/ logs/ raw_metrics/ 我正在学习Docker,并试图“Dockerize”这个应用程序,并试图find一个安装/容量解决scheme,为我完成以下目标: embedded式数据库存储在相同的安装卷中,而不pipemyapp运行的容器实例有多less个。 换句话说,所有容器实例都将其数据写入共享database/卷; 和 我也更喜欢我的日志和原始指标(即:所有容器实例将日志/指标写入同一个共享卷)相同,除了这里我需要能够区分每个容器的日志和指标数据。 换句话说,我需要知道容器X产生了一个特定的日志消息,或者容器Y在7秒内响应了一个请求,等等。 我想知道Docker-land中的标准程序是什么。 在阅读官方的Docker文档以及Docker卷的这篇文章之后,我尝试的方法是: 创build一个Data Volume Container并将其挂载到主机上的/opt/myapp 然后,我可以configuration我的embedded式数据库读取/写入到/opt/myapp/database ,我相信 (如果我明白我读了正确),所有容器实例将共享相同的数据库 以某种方式将容器ID或其他唯一标识符注入到每个容器实例中,并在生成日志或原始度量标准时重构我的日志logging和度量标准代码以包含注入的ID,以便我可以拥有/opt/myapp/logs/containerX.log文件,/ /opt/myapp/logs/containerY.log文件等等。 但是我非常感兴趣的是Docker容器中日志聚合的标准做法。 另外,可以说更重要的是,我不确定这个解决scheme是否可以在多主机场景下运行,在这个场景中,我有一个在多台主机上运行数十个myapp容器的Swarm /集群。 我的数据卷容器会奇迹般地同步所有主机上的/opt/myapp卷吗? 如果没有,无论主机在哪个主机上运行,​​装载容器的共享卷的解决scheme是什么? 提前致谢!