Docker群集安全性和AWS上的高可用性

我正在AWS上部署一个有多个节点的docker群,现在我所有的节点都有公共IP地址,并且我打开了群集通讯的端口(2377,7946,4798)。 我有不同的端口上的多个Web服务(3000,8080 …)我也有一个nginx反向代理,它是唯一的发布端口(80,443)的服务。 我将有一个弹性的IP连接到代理节点,并在该IP地址* .mydomain.com上的Alogging。 所以我的服务将在service1.mydomain.com等访问… 这里有安全问题吗? 导致我的所有节点都有公共IP和暴露的群集端口? 即使他们不发布服务端口? 我应该使用AWS VPC吗? 似乎与swarmnetworkingredondant 谢谢,

通过它的名字而不是它的VIP访问服务

我的印象是,我可以使用其名称访问集群内其他容器的服务(在这种情况下恰好是NodePort端口)。 $ kubectl get svc NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE svc 10.0.0.235 <nodes> 8090:30062/TCP 6s 我可以做这个: $ minikube ssh $ curl -v -H "Content-Type: application/json" http://10.0.0.235:8090/some_api 它工作正常。 但我不能这样做: $ curl -v -H "Content-Type: application/json" http://svc:8090/some_api 我错过了什么吗? 我是否需要在Minikube中configuration某些内容才能实现此目的? 同样,我的search使我相信这个映射(用于名称parsing)是在我创build服务时自动configuration的。

dockerize错误不是目录

以下命令在OSX上给出错误。 任何想法,为什么这是行不通的? 蝙蝠侠:demo davinci $ dockerize -t demo –cmd / demo –add-file /Users/davinci/src/demo/.build/demo / demo Traceback(最近调用最后一个):在load_entry_point('dockerize == 0.2.2','console_scripts','dockerize')()中,第11行的文件“/ usr / local / bin / dockerize” 文件“/usr/local/lib/python2.7/site-packages/dockerize/main.py”,行125,在主app.build() 文件“/usr/local/lib/python2.7/site-packages/dockerize/dockerize.py”,第122行,在build self.resolve_deps() 文件“/usr/local/lib/python2.7/site-packages/dockerize/dockerize.py”,第200行,位于resolve_deps deps.add(path) 文件“/usr/local/lib/python2.7/site-packages/dockerize/depsolver.py”,第110行,添加self.get_deps(path) 文件“/usr/local/lib/python2.7/site-packages/dockerize/depsolver.py”,第81行,在get_deps elf = ELFFile(path) 文件“/usr/local/lib/python2.7/site-packages/dockerize/depsolver.py”,第36行,在init self.read_sections() 文件“/usr/local/lib/python2.7/site-packages/dockerize/depsolver.py”,第42行,在read_sections中stderr = subprocess.STDOUT) 文件“/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py”,第212行,在check_output process = Popen(stdout = PIPE,* popenargs,** kwargs) 文件“/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py”,390行,在初始化 errread,错误) 文件“/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py”,1024行,在_execute_child中raise child_exception OSError:[Errno 20]不是目录

docker全球服务和复制服务的性能

我一直在使用docker containerizing服务。 我被困在一个担心的情况下,我们需要支持docker global config services (服务运行在每个节点上),但我不相信这种方法,因为运行的容器已经启用了swarm ,AFAIK swarm内部使用入口用路由网格进行负载均衡,这意味着已发布的端口和目标端口负责处理请求的任何节点上的请求。但是,如果我想要实现全局服务,那么是否有任何性能退步或此方法的任何问题,因为swarm需要要特别注意每节点启动容器? 做了很多谷歌search和docker论坛,但没有find合适的答案。 build议欢迎

linux mke2fs失败:在我的docker镜像中没有名为/ dev / ram0的设备

在完整的centos vm中,在/ dev方向下有很多dev描述符,所以我可以使用下面的命令mke2fs其中之一: # create a mount point: mkdir /tmp/ramdisk0 # create a filesystem: mke2fs /dev/ram0 # mount the ramdisk: mount /dev/ram0 /tmp/ramdisk0 从http://www.linuxfocus.org/English/November1999/article124.html 。 很好,但是在一个centos docker镜像里面,我发现在/ dev下面没有这样的ramX设备。 所以: 如果/ dev / ram0已经是某种内存文件系统,为什么需要使用mke2fs命令使其成为文件系统映射? 如何做到这一点在docker内装载?

如何以root用户Docker Cloud运行docker-compose

当我作为docker工作作为ec2用户组成 [ec2-user@ip-15-0-52-106 $ docker-compose –version docker-compose version 1.11.2, build dfed245 但作为root用户 [root@ip-15-0-52-106 ~]# docker-compose –version -bash: docker-compose: command not found 我找不到命令。 任何想法如何以root用户身份运行它

如何从Docker容器中的Postfix中检索指标

我在Docker容器中部署了一个Postfix。 默认情况下,它使用syslog进行日志logging。 我需要跟踪邮件队列,失败,发件人/接收者。 这有什么select吗? 最好不要在容器内安装很多

stream利的JSONparsing器:获取无法parsing的消息

在我目前的项目中,我必须处理不同types的日志logging在一个来源(http)中进入我的fluentd。 大多数条目是JSON格式的,但在某些情况下,我必须处理明文logging。 (例如,在设置日志库之前的例外情况)。 我如何处理我的fluentd-config中的这种情况? 我的详细设置:我使用Docker的fluentd-logging-driver作为一些带有node.js-app的容器。 node.js-app有一个日志logging库,它以json格式将所有内容logging到stdout / stderr。 每个运行时exception也将被格式化为json。 我的问题只发生在node.js无法启动(如缺less依赖关系..)。 在这种情况下,exception将被格式化为纯文本。 这会导致fluentd中的错误,因为它不能被parsing。 Fluentd也运行在一个容器中。 我的第一个方法是将fluentd-own-messages(包括parsing器错误消息)也logging到我的elasticsearch中,但是原来的消息get的来源是这种方法丢失的。 我运行了大约15个不同的服务,所以我真的需要我的exception的“源”。 <source> @type forward port 24224 </source> <filter fluent.**> @type record_transformer <record> fields.module fluentd #fields.module is my identifier for the source </record> </filter> <match fluent.**> @include elastic.conf #elastic configuration is in a separate file </match> # JSON-Parse <filter **> @type parser […]

Docker容器内运行的Java RMI应用程序无法在Docker主机之外进行通信(即从networking中的不同服务器)

我已经通过这个链接和更多相关的问题,但没有解决我的问题。 这是我的问题的细节: 我有一个JAVA RMI应用程序运行在我的Docker容器中,它有一个基本的centos:7。 现在提到的JAVA应用程序通过3232 java rmi端口发送一些networking数据包。 JAVA_OPTS参数是-Djava.rmi.server.hostname=10.122.25.72 -Djava.rmi.activation.port=3232这里10.122.25.72是10.122.25.72引擎运行的物理系统的ip地址。 如果假设我正在使用ip 172.17.0.1:3232从我的物理系统访问此端口与我的客户端程序比正常工作。 但是如果从networking中的其他系统尝试连接10.122.25.72:3232不是连接被拒绝。 我开始使用docker run -it -d –name $container_name -h $host_name -p $db_port:1522 -p $jmx_port:8874 -p $app_port:3232 -v jdk1.8.0_65:/opt/jdk1.8.0_65 -v $Basedir/mount/$container_name/logs:/opt/application/modules/abc/logs -v $Basedir/mount/$container_name/packages:/opt/packages我的容器docker run -it -d –name $container_name -h $host_name -p $db_port:1522 -p $jmx_port:8874 -p $app_port:3232 -v jdk1.8.0_65:/opt/jdk1.8.0_65 -v $Basedir/mount/$container_name/logs:/opt/application/modules/abc/logs -v $Basedir/mount/$container_name/packages:/opt/packages here $ app_port:3232我正在加载一个属性文件,其中提到所有$variables。 相同的运行命令,如果我开始–net=host一切工作正常,从networking中的任何机器的docker主机。 […]

如何重新启动容器内的进程/使用原始的restart.py重新启动PhpStorm

我正在用PhpStorm做一个图像(作为我构build可移植开发环境的一部分)。 除了PhpStorm无法自行重启,一切运行都很顺利。 它使用bin/restart.py脚本,在docker化时不起作用。 这是脚本的身体: #!/usr/bin/env python # Waits for the parent process to terminate, then executes specified commands. import os import signal import sys import time if len(sys.argv) < 3: raise Exception('usage: restart.py <pid> <path> [optional command]') signal.signal(signal.SIGHUP, signal.SIG_IGN) pid = int(sys.argv[1]) while os.getppid() == pid: time.sleep(0.5) // *** if len(sys.argv) > 3: to_launch = […]