Tag: 联网

为什么Docker / Containers拥有自己的networking概念(CNM / CNI),而不是使用VMnetworking?

我最近读了一篇关于集装箱networking概念的文章 ,解释了CNM(集装箱networking模型)和CNI(集装箱networking接口)模型。 提出了两个问题: 为什么我们有这样的集装箱networkingdevise(CNM / CNI)? 为什么我们不会继续使用虚拟机联网scheme,我们只需将不同的虚拟机连接到主机OVS,同时让控制器更新stream表?

无法通过docker consul在另一台主机上ping容器

我有3个CentoS 7机器。 我试图build立一个cassandra集群。 一个cassandra节点可以发现所有其他节点,如果它们在同一个networking中,所以我正在寻找一种方法来在不同的主机上build立两个容器,但是仍然使它们像在同一个networking中一样工作。 我试图与领事在以下步骤: 在machine0上创build一个consul容器: docker run -d -p 8500:8500 -h consul –name consul progrium/consul -server -bootstrap 将consulconfiguration添加到machine1和machine2中的/lib/systemd/system/docker.service : -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock –cluster-store=consul://*machine0-external-ip*:8500/network –cluster-advertise=machine0-external-ip:2375 –userland-proxy=false \ 创build覆盖networkingdocker network create -d overlay –subnet=10.10.10.0/24 testNetwork 在machine1和machine2上创buildbusybox容器,使用我的testingnetworkingmachine1 docker run -itd –name container1 –net testNetwork busybox machine2- docker run -itd –name container2 –net testNetwork busybox 从任一台机器(1或2),我都可以通过这个命令docker network […]

将接口添加到Docker Image

我正在寻找一种方法来在我的Docker镜像中创build多个环回。 在一个正常的Ubuntu我打电话 sudo ifconfig lo:1 10.53.0.2/16 up sudo ifconfig lo:2 10.53.0.3/16 up sudo ifconfig lo:3 10.53.1.1/16 up sudo ifconfig lo:4 10.53.1.2/16 up 设置我的环回,但是Docker拒绝这个错误消息的命令: SIOCSIFADDR: Operation not permitted SIOCSIFFLAGS: Operation not permitted SIOCSIFFLAGS: Operation not permitted SIOCSIFNETMASK: Operation not permitted 我很努力地创buildnetworking docker network create 但如果这为我工作,非。 我正在运行Docker版本17.06.0-ce。 我的基本镜像是Ubuntu 14.04。 也许有人可以帮忙? 谢谢,克里斯

如何将公有IP地址分配给Docker容器,以便我可以在我的networking上访问它们?

我知道有几个类似的问题,但似乎没有为我工作。 我已经在互联网上search了两天的答案。 我有以下情况: VM主机(VMware ESXI 5.5),使用centos 7,运行Docker 17.06。 两个docker集装箱,运行一个应用程序。 开发人员需要通过公司networking中的IP访问该应用程序。 我不能使用端口映射,因为将连接到容器的应用程序将引发错误的IP(input主机IP与容器IP,这是返回到连接的应用程序)的错误。 我试图创builddockernetworking: docker network create \ –driver bridge \ –subnet=10.0.20.0/24 \ –gateway=10.0.20.1 \ –opt "com.docker.network.bridge.name"="docker1" \ shared_nw 然后运行我的容器: docker run –name container1 –net shared_nw –ip 10.11.40.xxx -d someimage 我能够从容器内部ping我的笔记本电脑(即10.140.134.56),但不能以其他方式。 我也尝试使用macvlan司机,但无济于事。 docker network create –driver macvlan \ –subnet=10.0.20.0/24 \ –gateway=10.0.20.1 \ -o parent=eth0 \ shared_nw 根据我在网上find的,这应该是相当容易实现的,但是我一直没能做到。

我怎样才能从外部主机使用macvlannetworkingping本地docker容器?

客观:假设两个主机A和B.容器x在A应该能够从主机B ping,使得这个容器x与A和B存在于相同的networking中并且具有它自己的IP地址。 Docker为多主机联网提供了两种types的networking解决scheme1)带/不带Docker群的覆盖networking2)Macvlannetworking。 我想知道第二种types的Macvlannetworking如何实现目标

docker服务虚拟IP无法访问

我有一个单一节点的docker群。 我已经将图像registry部署为一项服务: docker service create \ –name image-registry \ –hostname image-registry.localdomain.local \ –secret image-registry.crt \ –secret image-registry.key \ –constraint 'node.labels.registry==true' \ –mount type=bind,src=/var/image-registry/,dst=/var/lib/registry \ -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \ -e REGISTRY_HTTP_TLS_CERTIFICATE=/run/secrets/image-registry.crt \ -e REGISTRY_HTTP_TLS_KEY=/run/secrets/image-registry.key \ –publish published=443,target=443 \ –replicas 1 \ registry:2 服务看起来很健康 $ docker service ls ID NAME MODE REPLICAS IMAGE PORTS ywt51zvik09s image-registry replicated 1/1 […]

如何识别运行jenkins容器时使用的docker host ip

我有在Windows操作系统上安装docker机,并已从docker集线器jenkins图像。 然后我运行下面的命令: docker volume created myjenkins-data docker run -p 8080:8080 -p 50000:50000 -v myjenkins-data:/var/jenkins_home jenkins 我在日志中收到了Jenkins的pipe理员密钥。 我已经确认我的容器仍在运行状态: $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2854c7d83879 jenkins "/bin/tini — /usr…" About a minute ago Up About a minute 0.0.0.0:8080->8080/tcp, 0.0.0.0:50000->50000/tcp quizzical_cray 现在,我需要login到8080端口来查看Jenkinsnetworking应用程序。 但是我不知道使用哪个主机ip。 我使用“docker-machine ip”命令识别了docker host ip,得到了ip地址:192.168.99.100。 但使用192.168.99.100:8080没有提出jenkins应用程序。 我也尝试使用docker检查来获取容器的IP,但端口8080也不能在这些IPS上工作。 我使用哪个IP地址查看在容器中运行的Jenkins应用程序?

如何隐藏单个主机名后面的Docker容器

我对Docker相当陌生。 我开始接触VM的思维模式,但是我意识到它使用了一个完全不同于VM的模式,甚至是传统的LXC容器。 理解networking如何工作是最大的挑战。 我试图使用Docker在需要一些相同端口的计算机上运行多个服务,以避免端口冲突。 我想使用主机的FQDN来访问它们,而不必担心将容器FQDN添加到DNS。 我将相关的容器端口转发到未使用的主机端口。 问题是,当我尝试从我的浏览器访问服务时,它被redirect到容器的FQDN,它无法parsing。 结果是“服务器未find”错误。 有没有办法隐藏主机的FQDN背后的所有容器,而不必解决容器的FQDN?

如何将基于主机名的请求转发到特定的泊坞窗容器

我试图使用主机名连接到docker集装箱。 即:我将浏览器连接到web01.docker.example.org(假设* .docker.example.org上的通配符DNSlogging指向我的泊坞窗)。 如何让docker将这个请求转发给我的nginx docker? 这个想法是由apache的VirtualNameHost模型启发的,除了VirtualHost而不是一个正在运行的容器。

来自Docker容器的出站Telnet连接被拒绝,但在主机上正常工作

我在通过Tutum to AWS托pipe的节点上遇到networking问题。 我进入了节点并跑了 telnet localhost 3000 而且效果很好。 当我将docker exec -it <containerid> bash放到我的一个容器中并运行上面的命令时,我得到这个错误: telnet: Unable to connect to remote host: Connection refused 谁能阐明为什么出站连接从容器到主机是不允许的?