Tag: networking应用程序

在同一主机上控制对多个Docker容器的访问

我的任务是使用Docker在单个Amazon EC2实例上设置多个独立的客户端特定的Web应用程序实例。 基本应用程序对于每个实例基本相同,但是已经为每个客户端定制。 目标如下: 1)每个集装箱将被固定和“沙箱”,使得没有一个集装箱可能影响其他人或主人。 这是我的理解Docker做这个,但我只是想确定。 2)每个容器都是“完整的”,并有自己的用户,数据库,访问密钥等。 3)与一个容器关联的用户应该无法访问任何其他容器或主机的任何方面。 我已经search了类似的问题,有些似乎触及了这个想法,但并没有完全回答我的问题。 我知道这可能违背了Docker的理念,但是,这是可行的,那么最好的方法是什么? 过去,当每个主机只有一个客户端时,我们使用SSH隧道来访问相关的端口,但是在同一个主机上有多个客户端可以使用这种安全的方法吗? 像Nginx或Apache这样的反向代理服务器可以更好地服务于这种设置吗? 我应该在这里指定,我们目前正在寻找只有一个域来访问这个主机。 我想这个问题归结为,如何在单个主机上运行多个客户端容器时限制每个容器级别的远程访问? 任何帮助深表感谢。

使用-p或-P标志运行Docker容器会导致失败

我最近开始把我的简单的博客应用程序移动到docker集装箱。 我创build了自己的dockerfile并成功构build了映像,并且运行webapp时没有问题,但是如果向运行命令添加-P或-p 8080:8080标记,则会失败,并显示以下错误: mathew@mathew-laptop:goblog:-> docker run -it -P chasinglogic/test FATA[0002] Error response from daemon: Cannot start container 0042e27ea10942b4b394b7179d8dc43e3996e28c773d400672fd2333833659ad: (exit status 1) 我有CMD设置为自动运行我的可执行文件,并在我的Dockerfile中有EXPOSE 8080。 我原本以为这一定是我的webapp不喜欢docker的端口转发或与我的Dockerfile的问题,所以我去了Docker教程和testing与培训/ Web应用程序的图像,并得到了同样的错误: mathew@mathew-laptop:goblog:-> sudo docker run -d -P training/webapp python app.py [sudo] password for mathew: Unable to find image 'training/webapp:latest' locally Pulling repository training/webapp 31fa814ba25a: Download complete 511136ea3c5a: Download complete f10ebce2c0e1: Download […]

如何configurationApache(在服务器上安装)在Docker中运行Web应用程序(Django的)?

我有一个apache服务器安装并在PHP运行3个网站。 我也在django上开发了一个移动API,运行在4个docker容器(django,redis,elasticsearch,rabbitmq,使用fig.sh )。 因为apache正在运行,我想保留它并将其configuration为在Docker容器上运行Web应用程序。 如果是django应用程序,我会configurationmod_wsgi ,但它不是这样,我不知道。 任何想法。 非常感谢。 注意:我在Centos 6.6上使用docker 1.5和apache 2.2 。 编辑: Apache为3个网站的3个域名包含3个<VirtualHost *:80 > 。 1 website1.com 2 website2.com 3 website3.com 和我想要部署的api域名上运行api.website1.com是website1.com的子域名 fig.yml db: image: mysql volumes: – /var/lib/mysql:/var/lib/mysql volumes_from: – mysql_data ports: – "3306:3306" environment: MYSQL_ROOT_PASSWORD: 123 # command: redis: image: redis:3 elasticsearch: image: elasticsearch ports: – "9200:9200" – "9300:9300" rabbitmq: […]

docker图像更新跨多个客户端

比方说,我创build一个应用程序,并使其成为一个泊坞窗的图像,意图让人们拉图像,并运行它。 他们只是关心使用的应用程序,我只是在分发它。 一旦他们运行的图像,它将是一个容器,所以如果我更新图像, 这是否意味着他们不得不重新拉动docker图像,每次重新运行? 除此之外: 是否有可能在应用程序中自动执行docker pull请求或镜像更新? 假设他们运行图像,并访问浏览器中的应用程序。 应用程序是否可以检查是否有可用的更新(即,它不是最新的Docker镜像版本),然后拖动最新的Docker镜像? 在一个理想的世界里,我想要客户端运行docker拉,然后docker运行,这就是永远。

在主机networking上使用docker容器,而不共享主机的IP

我的docker主机是本地networking192.168.178.0/24 。 有没有办法运行一个容器,成为主机networking的一部分,但不与主机共享相同的IP? 所以例如,如果主机有IP 192.168.178.5我想提供192.168.178.8容器,而不会干扰docker主机的networkingconfiguration。

Kubernetes本地集群中的networking和DNS与Docker

我已经从Github的发布标签下载了Kubernetes二进制文件。 我把二进制文件放在我的path(即kubectl) 我按照这个指南启动了一个简单的使用Docker容器的本地集群: http : //kubernetes.io/v1.0/docs/getting-started-guides/docker.html 现在我可以从127.0.0.1:8080联系Kubernetes API,我得到了Nginx的pod运行和服务暴露。 我有一个范围为172.17.42.1/16的“docker0”接口对容器执行“docker inspect”会返回该范围内的IP。 做'kubectl获取服务'从范围10.0.0.0/24返回IP我可以使用从10.0.0.x和172.16.xx的IP到达Nginx networking如何build立? 为什么'nginx'服务没有出现在/ api / v1 / services? 另外我想用Heapster + InfluxDB + Grafana设置监控。 Heapster将尝试使用无法parsing的主机名连接到InfluxDB。 所以我search了如何为Kubernetes启动DNS服务器。 我在kubernetes / cluster / addons / dns下修改了一些文件yaml skydns-rc.yaml要求Kubernetes Master IP调用API来发现服务。 什么是Kubernetes Master IP? 从docker主机Kubernetes Master IP是127.0.0.1,但它不能从仓内到达(afaik 127.0.0.1里面的豆荚是豆荚本身)它不是10.0.0.1,因为它不从docker主机既不是从kube2sky容器。 我无法在文档或Github上find任何帮助,因为它非常专注于云和GCE。 谢谢你的帮助!

分配一个docker实例给每个客户端

我有一个Docker实例,将端口A公开给主机。 主机为docker实例预留一个端口B,连接到主机端口B的客户端实际上将在不知道它的情况下与端口A上的docker进行通信。 目前,只有一个客户端可以访问这个docker实例。 我希望能够pipe理多个客户端,每个客户端都有自己的实例。 所以服务器(Python会好的)会接收来自客户端的连接(例如所有客户端的端口5555),并将每个客户端无缝地redirect到自己的docker实例。 这已经存在了,因为它是一个服务器的基本东西,但我似乎缺乏在网上find它的词汇。 这个系统的名称是什么?已经存在了吗?

为docker容器指定linux界面

是否有可能指定哪个Linuxnetworking接口docker容器应该使用? 我有多个接口,并希望为不同的容器使用不同的接口。 从我可以读取我能够configuration默认docker桥,但我不能使用docker容器的几个不同的桥梁。

与docker的内部基础设施

我有一个小公司networking与以下服务/服务器: jenkins 藏匿(atlassian) 合stream(atlassian) LDAP owncloud zabbix(监控) 木偶 和一些java-web-apps 所有运行在独立虚拟子网上的单独kvm(libvirt)-vms都在两台机器(1个内部,1个hetzner-rootserver)之间。 我正在考虑切换到docker。 但有两个问题给我: 我怎样才能实现docker集装箱之间的networking安全(即我想阻止owncloud访问除了ldap-hosts-sslport的networking中的任何主机) 只是通过使用docker连接? 如果是的话:docker真的只允许访问链接的容器,但没有其他人? 通过使用kubernetes? 通过为每个容器添加多个桥接networking接口? 你会把所有的infra-services / -servers切换到docker,还是只有docker上的owncloud和java-web-apps的混合解决scheme?

多播与Docker群和覆盖networking

我正在testing一个应用程序使用多播发现。 我创build了一个Swarm集群和一个network create -d overlay swarm-net以便这些容器在几个Swarm代理主机之间共享同一个LAN。 这个发现似乎不起作用,所以我安装了tshark 。 tshark显示tshark正在运行的IP地址节点,并且通过tshark 发送的包的多播地址不显示任何传入的多播包。 请注意,由于我不知道更好的方法,容器运行时使用–privileged来启用tshark 。 还要注意容器可以相互通信。 多播由于Docker的iptable而被阻塞? 如何在覆盖networking中启用组播?