在K8S的Docker中,nohup是后​​台进程,会导致该进程多次运行,为什么?

我们的开发团队已经在K8S集群的Docker容器中编写了一个shell代码,shell代码如下所示: /斌/庆典 nohup java -jar aaa.jar& 预期的情况是只有一个aaa.jar进程在container的后台运行,实际上有十个aaa.jar进程在运行时使用ps -ef来检查 有人也遇到过这个问题吗?

在Docker中执行默认的cronjob?

我在那里读到/tmp文件夹在Ubuntu 14.04+中每天都用cronjob清除。 这也适用于docker工人现成的? 或者我必须设置CMD cron或其他? 我不清楚Docker的单命令多进程约束…

更改zookeeper泊坞窗图像的configuration

我用这个zookeeper泊坞窗图片: https : //hub.docker.com/_/zookeeper/,但我有这个错误: WARN org.apache.zookeeper.server.NIOServerCnxn: Too many connections from /127.0.0.1 – max is 60 我怎样才能改变zoo.cfg的configuration? 设置maxClientCnxns=0似乎解决了这个问题 我尝试将configuration目录挂载为一个卷,然后更改该文件,但行为是相同的。 谢谢!

无法在Docker容器中运行jar Spring引导

我有Spring启动应用程序,我想在Docker容器中运行它。 我可以使用java -jar在我的OS X中运行jar文件,但不能在容器中运行。 我使用mvn clean package docker:build docker run wayruha/schedule_guard构build镜像mvn clean package docker:build使用docker run wayruha/schedule_guard mvn clean package docker:build和运行容器,并得到exception(问题结尾的堆栈跟踪) jar子的内容: -META-INF | — MANIFEST.MF | —行家 | -boot-INF | —class | —– COM | —– LIB | —–的logback-spring.xml | —– 其他资源 | -org 当然,它不能find在src/main logback属性,它不在那里,但为什么它在我的操作系统? 或者为什么它不在容器中工作? 除此之外,我的代码中没有任何对src/main/resources/logback-spring.xml (也许Spring试图find它?) 非常感谢您的帮助,我自己也找不到解决办法 这是我的pom.xml <?xml version="1.0" encoding="UTF-8"?> <project […]

在Ubuntu中的运行级别脚本中将环境variables传递给docker容器

我知道如何将环境variables传递给Docker容器。 喜欢 sudo docker run -e ENV1='ENV1_VALUE' -e ENV2='ENV2_VALUE1' …. 我能够成功地select这些variables,如果我从docker容器内的shell运行脚本。 但是docker实例的runlevel脚本无法看到传递给docker容器的环境variables。 最终所有的服务/守护进程都以默认configuration开始,我不想要。 请为此提出一些解决scheme。

Docker – Windows容器:如何使用自定义path

我一直在试图找出docker试图存储图像时,我正在做一个docker拉窗口容器,但无法find确切的位置。 尽pipe我已经为C驱动器中的所有docker文件创build了Junction链接,并且还configuration了Hyper-V以将所有内容存储在外部驱动器中,但是当我执行docker pull时,它仍然会开始在C驱动器中下载,失败,因为我没有可用的空间。 有人可以帮我吗? 我正在尝试做一个POC的Windows容器,不能拉下大图像:( 在此先感谢,维沙尔

使用Azure容器服务部署pipe理SSH密钥的最佳实践

对于我正在阅读的Azure容器服务的文档,我有点困惑。 我有一个项目,允许我成功地构build和部署我的Dockerfile到ACS – 在Azure门户中创build容器服务之后 – 这真是太棒了。 我看到的一个问题是,只有一个公钥可用于创build的可用性集。 一篇文章 – https://channel9.msdn.com/Shows/Azure-Container-Service/Azure-Container-Service-How-to-change-your-public-key – 演示了如何更改可用性集的公钥,如果只有一个开发人员在项目中工作,那也没关系。 在这种情况下,有几个开发人员在这个项目上工作。 一种可能的方法(我希望避免的方法之一)是让我们的团队通过SSH隧道连接到Azure容器服务 – 使用项目中的共享密钥 – 然后从另一个terminal发出docker命令。 我的问题是,是否有更好的方法来处理多个开发人员使用Docker部署到Azure? 我一直在试图find一些资源,但到目前为止,我看到的唯一例子是从一个开发人员的angular度来看。 任何指导将不胜感激。 谢谢!!

在minikube中的docker镜像的networking选项

我有一个Docker镜像(usermanagement:latest),通常我在本地testing时通过这种方式创build容器: docker run –net "host" -p 8096:8096 -v $(pwd):/etc usermanagement:latest -port 8096 -configfile /etc/config port和configfile都有默认值,端口的默认值是8096。 然后我可以简单地通过localhost:8096/1/users/some_api来访问它。 这使我能够灵活地创build许多容器,听取不同的端口的相同的图像。 现在,我已经把这个图像放到一个私有的registry中,并且想要使用也可以访问registry的minikube(一切正常)。 问题是我无法弄清楚如何在创buildKubernetes部署时指定networking选项( –net或-p )甚至是卷选项( -v )。 我试过了: kubectl run usr –image=$REGISTRY_IP:80/usermanagement:latest –port=8096 kubectl expose deployment usr –target-port=8096 –type=NodePort 其中REGISTRY_IP是私有registry的IP,图像已经从该registry中拉入到minikube的泊坞窗中。 我已经validation了服务被创build和暴露,但我无法达到(获得404)容器在minikube使用: curl -v http://192.168.42.149:31900/1/users/some_api 以上服务的IP和端口来自: kubectl get svc usr minikube ip 任何帮助表示赞赏。

在运行在Docker for Windows上的Docker容器中公开的端口上没有接收到UDP通信。 如何debugging?

我有一个Node.js应用程序,我将其打包到创buildFROM node:6的Docker映像中FROM node:6 (A)或FROM hypriot/rpi-node:6创build的映像FROM hypriot/rpi-node:6 (B)。 应用程序从端口43210读取UDP消息,并通过端口4000上的TCP进行通信。因此,在运行两个映像(使用/udp后缀的UDP端口)时,相应的端口都是暴露的。 在RaspberryPi上运行容器B时,一切正常。 但是,在Windows 10 Pro上运行带有Docker for Windows最新版本的容器A时,应用程序不会收到任何UDP消息(Docker for Windows 17.03.0-ce-win1(10296))。 如果我通过docker port <container name>列出暴露的端口,我得到: 4000/tcp -> 0.0.0.0:4000 43210/udp -> 0.0.0.0:43210 … some other exposed ports 我尝试通过从另一台机器发送包到Windows主机来debuggingUDPstream量,如下所示: "random message" | nc -u -w1 <win-host-ip> 43210 并通过以下方式在docker集装箱中收听: docker exec <container-name> tcpdump -i eth0 udp dst port 43210 这个testing在检查TCPstream量(例如在端口4000上)时工作正常。但是,我发现检查UDPstream量对于上面的testing甚至对于使用容器B(工作)的设置都是行不通的(tcpdump没有收到任何东西)。 将RaspberryPi运行映像B连接到真正的UDPstream量源并使用docker exec […]

使用tmpfs卷时记忆计算错误

我有一个工作负载,我想用一个容器将数据写入从主机挂载的-tmpfs卷。 我希望写入卷的数据不会计入Docker对写入容器的内存限制。 但是,写入主机安装卷的数据似乎计入容器的内存限制。 这是正确的行为? 有没有办法让容器写入比内存限制更多的数据到主机的内存? 从运行amazon linux的新configuration的EC2机器复制步骤: sudo yum install -y docker # Mount a 5GB tmpfs sudo mkdir /mnt/tmpfs && sudo mount -t tmpfs -o size=5G tmpfs /mnt/tmpfs # Get some data. This file is 3GB wget https://datasets.elasticmapreduce.s3.amazonaws.com/ngrams/books/20090715/eng-us-all/1gram/data –no-check-certificate sudo service docker start sudo docker run –rm –memory=2G -it -v /mnt/tmpfs:/mnt/tmpfs -v ~/data:/data ubuntu […]