Tag: docker

docker.io – Docker连接应用程序和数据库容器

我试图用我的Scala-Akka应用程序和两个独立的Docker容器上的MySQL数据库。 我发现Docker允许开发人员用名为–link的标志将他们的应用程序连接到他们的数据库。 在我用来创build图像的Dockerfiles中,我添加了EXPOSE 3306 8080。 这就是我如何运行容器: docker run -d -p 3306:3306 –name mysql centos6mysql docker run -d -p 8080:8080 –name scalaapp –link mysql:db centos6scala 在运行容器后,我使用docker ps,我可以看到活动的容器。 但是,应用程序容器似乎没有使用MySQL容器中的数据库。 任何人都知道什么是错的?

如何检测docker集装箱是否坠毁

我每5分钟运行一个进程,检查一下每个容器。 如果容器没有响应,我可以将其标记为closures。 我有容器的IP地址,我通过每个IP循环,并检查它是否响应一个ping。 如果没有,我将其标记为closures。 有一个更好的方法吗? 我的代码: @Transactional @Scheduled(fixedRate = 1000 * 60) //5 min public void monitorHosts(){ Iterable<Ncl> ncls = nclRepository.findAll(); for(Ncl ncl: ncls){ for(String host: ncl.getHosts()){ Boolean isHostAlive = isHostAlive(host); if(!isHostAlive){ Ncl nclWorking = nclRepository.findOne(ncl.getUuid()); if(nclWorking != null){ Set<String> hosts = nclWorking.getHosts().stream().filter(x -> x.equals(host)).collect(Collectors.toSet()); nclWorking.getHosts().clear(); nclWorking = nclRepository.save(nclWorking); nclWorking.setHosts(hosts); nclRepository.save(nclWorking); } } } } […]

Dockerfile FROM指令

Dockerfile参考说明了关于FROM指令的以下内容: FROM可以在单个Dockerfile中出现多次,以创build多个图像。 只需在每个新的FROM命令之前logging由提交输出的最后一个映像ID。 我不明白他们的意思是通过提交输出的最后一个图像ID输出 。 我不确定我是否有多个FROM指令。 这有什么有效的用例吗?

将docker集装箱部署到生产中,以保留装载的卷

在我的开发机器我有应用程序容器与安装代码目录fe -v /主机/代码:/应用程序/代码 将这种容器部署到生产中的最佳做法是什么? 我应该如何打包容器内的这个挂载绑定的方式,我只会执行“docker加载”,并得到一切工作。

HaProxy用于在马拉松式集装箱docker上进行服务发现

请不要询问我检查过的任何地方。 这是我所做的。 我能够部署mesos,马拉松和docker的单个实例。 移动下一步,我想有2个mesos奴隶(docker集装箱)相互链接。 只要使用docker,可以通过使用docker链接function来实现。 但是,当使用编排(mesos)和调度程序(马拉松),似乎你需要使用服务发现。 我的设置很简单,在一台主机上运行。 所以我将有2个Docker容器运行一个简单的pub / sub和一个运行rabbitmq。 如何在此设置中使用HA PRoxy。 我已经看到mesosphere http://mesosphere.com/docs/getting-started/service-discovery/提供的一些文件,但不清楚如何去做。

docker集装箱是否足够安全地与生产系统并排运行第三方不受信任的集装箱?

我们计划允许在我们的基础设施上与我们的API进行交互的第三方微服务代码的执行。 docker安装是否足够安全? 跟踪资源(networking,RAM,CPU)容器消耗的解决scheme吗?

Docker从Dockernetworking中断开所有容器

我有dockernetworking“my_network”。 我想用docker network rm my_network删除这个docker network rm my_network 。 在此之前,我应该断开所有我的容器从这个networking。 我可以使用docker network inspect并获取输出 [ { "Name": "my_network", "Id": "aaaaaa", "Scope": "some_value", "Driver": "another_value", "EnableIPv6": bool_value, "IPAM": { "Driver": "default", "Options": {}, "Config": [ { "Subnet": "10.0.0.0/1" } ] }, "Internal": false, "Containers": { "bbb": { "Name": "my_container_1", "EndpointID": "ENDPOITID1", "MacAddress": "MacAddress1", "IPv4Address": "0.0.0.0/1", "IPv6Address": "" […]

如何用Docker实现“一二进制”原则

一个二进制原则在这里解释: http : //programmer.97things.oreilly.com/wiki/index.php/One_Binary指出,应该… “构build一个可以在发布pipe道的所有阶段识别和升级的二进制文件,在环境中保存特定于环境的详细信息,例如,这可能意味着将它们保存在组件容器中,已知文件中或path。” 我看到许多开发人员工程师通过在每个环境中创build一个Docker镜像(即,my-app-qa,my-app-prod等)来违反这一原则。 我知道Docker支持不可变的基础架构,这意味着部署后不会更改映像,因此不会在部署后上传或下载configuration。 在不可改变的基础设施和一个二元原理之间是否存在一个权衡,还是它们可以相互补充? 当涉及到从代码分离configuration什么是在Docker世界的最佳做法? 应采取以下哪一种方法… 1)创build一个基本的二进制镜像,然后configuration一个Dockerfile,通过添加环境特定的configuration来扩充这个镜像。 (即我的应用程序 – >我的应用程序产品) 2)在部署时将一个仅二进制docker映像部署到容器中,并通过环境variables传递configuration等。 3)将Docker文件部署到容器后上传configuration 4)从configurationpipe理服务器中从容器内正在运行的泊坞窗镜像下载configuration。 5)保持主机环境中的configuration,并通过绑定挂载使其可用于正在运行的Docker实例。 有没有更好的方法没有提到上面? 如何使用不可变的基础架构来执行一个二进制原则? 它可以做到还是有一个权衡? 最佳做法是什么?

Spring Cloud Config Server无法通过Docker中的ssh连接到git

我已经安装了Spring Cloud Config Server来连接到我们本地的Stash(Atlassian Git)存储库。 自行运行应用程序没有问题。 当我将这个项目包装在一个Docker镜像中并执行它时,它永远不会从存储库中加载configuration。 这是一个例外: 2015-09-02 16:24:18.266 ERROR 1 — [nio-8888-exec-1] oaccC[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: Cannot clone or checkout repository] with root cause com.jcraft.jsch.JSchException: UnknownHostKey: [MASKED HOST NAME]. RSA key fingerprint is 5c:73:1f:6c:09:b8:60:7b:6b:38:c9:c0:42:68:27:05 at com.jcraft.jsch.Session.checkHost(Session.java:786) at […]

Docker Centos 7 easy_install supervisor ssl问题后面的代理

在过去的两天,我正在阅读docker-container并试图设置一个Apache容器。 我在代理后面。 以下是我的Dockerfile的内容。 FROM centos:latest ENV http_proxy <Perfect Proxy schema here> ENV https_proxy <Perfect Proxy schema here> ENV ftp_proxy <Perfect Proxy schema here> RUN yum -y update RUN yum -y install python-setuptools RUN easy_install supervisor RUN mkdir -p /var/log/supervisor RUN yum -y install which RUN yum -y install git RUN easy_install supervisor之前,一切顺利。 我得到下面的错误。 Step 6 […]