Tag: 容器

Kubernetes集装箱垃圾收集

我有一个关于容器内垃圾收集的问题。 我有一个主容器和边车容器在一个吊舱中运行。 如果主货柜完成,但边柜仍在运行。 Kubernetes垃圾收集主要容器? 我们可以保证主箱不会被垃圾收集,直到边车结束? 如果没有,是否有办法实现这一点? MaxPerPodContainer标志如何与此相关?

增强的docker统计命令与RAM和CPU的总量

我只想分享一个小脚本来增强docker stats命令。 我不确定这种方法的正确性。 我可以假设完整的Docker部署消耗的内存总量是每个容器消耗内存的总和吗? 请分享您的修改或更正。 这个命令logging在这里: https : //docs.docker.com/engine/reference/commandline/stats/ 在运行docker stats时输出如下所示: $ docker stats –all –format "table {{.MemPerc}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.Name}}" MEM % CPU % MEM USAGE / LIMIT NAME 0.50% 1.00% 77.85MiB / 15.57GiB ecstatic_noether 1.50% 3.50% 233.55MiB / 15.57GiB stoic_goodall 0.25% 0.50% 38.92MiB / 15.57GiB drunk_visvesvaraya 我的脚本将在最后添加以下行: 2.25% 5.00% 350.32MiB / 15.57GiB TOTAL docker_stats.sh #!/bin/bash # […]

jenkins:传出SSL通信docker集装箱

我一直在尝试使用Jenkinsdocker集装箱。 我正在使用Ansible中的docker_container模块构build容器。 我在“命令”选项中为容器提供了额外的configuration选项,如下所示: –httpPort=-1 –httpsPort=8443 –httpsKeyStore={{ keystore_path }} –httpsKeyStorePassword={{ keystore_password }} 密钥库是一个妥善configuration的委托签名javakeystore与我的整个根链完整的文件(我通过keytoolvalidation) 我得到的应用程序启动和显示为正确configuration(TLS和正确签名),并连接到插件社区正常工作(我可以下载和configuration插件及其依赖项。) 但是,当我尝试通过SSL与其他资源进行通信,这是由相同的根权威机构签署,我得到一个大的错误。 如果我使用configuration了https地址的插件,或者如果使用curl设置构build,则无关紧要。 对于信息,curl -k可以正常工作(如预期的那样) 我错过了密钥库的一些configuration? 是否应该在容器部署期间以外的某处添加ref到密钥库? 我已经search了高和低,并非常难倒… 如果我通过Curl来完成,下面是控制台输出中显示的内容: % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 –:–:– –:–:– –:–:– 0 0 0 0 0 […]

将Docker容器自动连接到IP地址/ DNS

我试图让我启动的Docker容器自动路由/连接到给定的IP地址,基本上这样做 sudo docker run -it -name server -p 10.118.52.235:5672:5672 leemount96/firstserver 自动,即使容器连接到IP地址。 我已经读过,有办法通过修改DOCKER_OPTS来做类似的事情,但是如何做到这一点并不明确。 谢谢

Docker可以自动重新启动容器并使用新的图像标签提交更改?

我使用Docker进行部署,并使用Docker-Compose(.yml文件)同时启动〜6个容器。 Compose文件中的每个图像都在本地find(部署环境中没有Internet连接)。 按照我的部署所采取的步骤如下所示: 运行docker-compose up(使用带有“latest”标签的图像从本地图像启动6个容器,如image1:latest,image2:latest等) 退出/停止时,我有6个停止的容器。 手动重新启动六个停止的容器(docker start xxx) 手动提交每个重新启动的容器(docker commit xxx) 手动重新标记每一代前一代图像(image1:最新 – >图像1:版本1,图像1:版本2等),并手动删除包含“最新”标签的图像 手动标记每个提交的容器(现在是图像)与“最新”标签(image1:最新) 这个过程是相当用户参与的,我们的部署需要用户参与才能运行“docker-compose up”命令,然后closures/停止Docker-Compose。 所需的最终目标是让脚本或Docker自己处理这些步骤,并最终生成不同代的图像(image1:version1,image1:version2,image1:latest等)。 所以,我的问题是,我将如何去创build一个脚本(或让Docker做到这一点),脚本(或者Docker)可以自主地执行脚本: 在停止/退出Docker-Compose时重新启动已停止的容器 提交重新启动的容器 使用最新的标签重新标记以前的图像到增加的版本#(图像1:版本1,图像1:版本2等),然后删除以前的图像1:最新的图像 使用“最新”标签标记新提交的重新启动的容器(现在是图片) 这是一个相当冗长和密集的问题要回答,但我将不胜感激任何帮助完成我的任务所需的任何步骤。 谢谢。

Spark应用程序无法写入docker中运行的elasticsearch集群

我有一个在127.0.0.1:9200上收听的elasticsearch docker镜像,我使用sense和kibana进行了testing,工作正常,我能够索引和查询文档。 现在,当我尝试从火花App写入它 val sparkConf = new SparkConf().setAppName("ES").setMaster("local") sparkConf.set("es.index.auto.create", "true") sparkConf.set("es.nodes", "127.0.0.1") sparkConf.set("es.port", "9200") sparkConf.set("es.resource", "spark/docs") val sc = new SparkContext(sparkConf) val sqlContext = new SQLContext(sc) val numbers = Map("one" -> 1, "two" -> 2, "three" -> 3) val airports = Map("arrival" -> "Otopeni", "SFO" -> "San Fran") val rdd = sc.parallelize(Seq(numbers, airports)) rdd.saveToEs("spark/docs") 它无法连接,并继续重试 […]

在一个Docker容器中运行两个进程,或者两个容器连接到同一个数据库?

我需要开发一个应用程序来监听一个kafka主题并将数据保存到一个数据库(cassandra)中。 这将是一个高密度的数据stream,所以保存数据将是资源昂贵。 数据保存后,将通过REST API进行查询和公开。 我看到两个选项,但是它们都有缺点: 选项1 创build两个服务,每个服务在一个单独的泊坞窗容器中。 一个只能运行python中的kafka监听器进程,另一个运行烧瓶web服务器。 优点 :每个容器只运行一个进程 缺点 :两种服务都连接到相同的数据库,根据微服务模式架构,这并不理想,因为服务并没有完全分离。 选项2 在一个容器中同时运行kafka监听器和Web服务。 优点 :只需一个服务即可连接到数据库。 缺点 :在一个docker集装箱中运行多个进程,其中一个(保存和更新)会比另一个更昂贵,所以不能一致地扩展。 还有另外一个不涉及到单一体系结构的方法吗? 或者哪一个是最佳实践?

如何更新自定义的Python泊坞窗图像

我是新来的docker,所以不知道如何更新docker图像。 我有一个Python代码,我已经使用下面的命令创build了它的泊坞窗图像: sudo docker build -t mycustomdocker . 完成之后,我可以使用sudo docker images来查看我的泊sudo docker images 。 要运行它,我可以使用: sudo docker run –restart=always mycustomdocker 这将启动它的容器,并始终重新启动,它将始终运行。 现在我想知道,例如,我已经更新了我的Python代码,并添加了一些新的function。 所以在更新Python代码之后,它的图像mycustomdocker自动更新,或者我们需要运行任何更新命令。 或者我们需要再次停止容器,然后删除现有的图像,并再次build立图像? 谢谢

如何在Bluemix上启用对容器的监视和日志logging?

我在Bluemix上创build了我的第一个容器。 我非常高兴看到通过GUI和CLI创build它们是多么容易。 我现在需要进行一些debugging,所以我到Bluemix UI中的应用程序容器的Monitoring and Logging页面查看日志,发现需要启用监视和日志logging。 我按照说明的链接快速滚动浏览。 他们是压倒性的。 第一步是“以root用户身份login容器或者虚拟机”,但是没有关于容器如何做的指导。 我需要使用SSH守护程序运行来构build映像吗? 如果是这样,怎么样? 运行容器时,是否需要提供SSH密钥? 如果是这样,怎么样? 有一个相关的问题仍然没有答案: 无法通过SSH密钥连接到bluemix容器任何援助将不胜感激。

多应用程序作为集群中的Docker容器,处理MySQL的方法

大部分有关设置Docker容器的文章似乎都是围绕着将应用程序分解成微服务并将其分配到各种容器并将其部署到集群中的想法而编写的。 我想找出最好的方法来处理为不同的客户端编写的多个不相关的应用程序的数据库(例如mySQL),部署到同一个集群中。 假设我有10个不相关的小应用程序(如wordpress),都需要访问mySQL数据库。 我可以: 将应用程序作为容器部署到群集中,仅包含应用程序代码,设置专用的mySQL服务器或Google Cloud SQL实例,并要求每个应用程序容器作为第三方服务连接到数据库。 将应用程序作为容器部署到群集中。 对于每个应用程序,还将一个单独的数据库容器部署到群集中并将两者连接起来。 将单独的数据库容器部署到群集中,并将此容器链接到群集中的各个应用程序容器。 哪种解决scheme最适合应用程序体系结构devise,哪些最适合计算机资源? 我有这样的感觉,即部署多个MySQL容器(每个应用程序一个)可能是最好的devise,但它可能不是最有效的资源,因为我们将有一堆的MySQL容器运行。