Tag: devops

如何在不同的机器上运行docker容器

我为我的应用程序安装了几个docker容器: mysql的容器 应用程序服务器容器(tomcat7) Nginx的容器 python龙卷风应用程序的容器 在我的本地机器上,使用docker-machine ,我尝试了所有这些容器,并且它们互相交互。 我用boot2linux创build了一个virtualbox机器,并在其上设置了所有这些容器。 现在,为了生产,我将在单独的服务器上运行这些容器中的每一个。 docker提供的东西是否可以快速/轻松地做到这一点? 还是应该在每个服务器上设置docker,将相关的图像复制到该服务器,然后在所有服务器上手动启动docker-images?

在Dockerfile FROM参数中使用–build-arg值

我目前使用AWS ECR托pipe我的项目图像,我需要参数FROM在Dockerfile中是根据命令行发送的–build-argdynamic的。 例: $ docker build –build-args region=us-east-1 . // Dockerfile FROM aws.ecr.huge.url.${region}/repo:php-apache WORKDIR /var/www RUN echo "@@@" $ {region}永远不会被replace,我得到一个错误,说图像不存在。 如果我运行echo $ {region}它有效,问题似乎与FROM指令。 有什么办法可以实现吗?

如何在js脚本中读取docker环境variables?

我有一个节点泊坞窗容器上托pipe的反应应用程序。 我运行它并将其传递给一个环境variables docker run -t -e "ADMIN_HOST_ENV=http://myapp.app:443/api" -p 3000:3000 "myapp" 我怎样才能得到应用程序中的“ADMIN_HOST_ENV”环境variables?

如何在本地应用Puppet类

所以我有一个我想用来configurationDocker映像的Puppetconfiguration,但我不知道如何在本地应用它们。 我的目标是希望做一些事情: RUN puppet apply -e "roles::database" 在我的Dockerfile中。 例如,我可能有一个我想要应用的包含如下内容的清单: class roles::database { include ::profiles::base } 但是当我去的时候: puppet apply -e "roles::database" 我得到: Could not parse for environment production: Syntax error at end of file at line 1 on node. 有人能指出我正确的方向吗?

使用自定义shell脚本作为docker入口点

我正在尝试使用docker-compose来调出一个容器。 作为一个入口点 ,那个容器有一个我写的简单的bash脚本。 现在,当我尝试以下列方式调出容器时: docker-compose up docker-compose up foo 它没有完成。 即试图将( docker exec -i -t $1 /bin/bash )附加到正在运行的容器,失败: 来自守护进程的错误响应:容器xyz正在重新启动,请等到容器正在运行。 我尝试着把命令放在后台。 这没有用。 my-script.sh cmd1 & cmd2 && … cmdn & 我也尝试了i)有和没有entrypoint: /bin/sh /usr/local/bin/my-script.sh和ii)有和没有tty: true选项。 没有骰子。 泊坞窗,compose.yml version: '2' services: foo: build: context: . dockerfile: Dockerfile.foo … tty: true entrypoint: /bin/sh /usr/local/bin/my-script.sh 也尝试了一个手动dockerbuild设/运行周期。 并且(在入口点没有启动/bin/sh )运行只是退出。 $ docker […]

Bluemix Dev Ops:使用私有git子模块构build项目

我想知道如何使用IBM Bluemix Dev Ops Services构build一个包含私有git子模块的项目。 在我的pipe道中,我有一个types为'Shell Script'的'Build'作业: #!/bin/bash git submodule init git submodule update –recursive 但是我的子模块包含一些私人存储库,我得到: Host key verification failed. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 在我的本地机器上,我能够运行这些命令,因为我有权访问和使用我的密钥。 我能做些什么来使它在这里工作? 我不希望将我的私钥提交到git中。 我正在部署的应用程序的回购托pipe在GitHub上。 私人子模块托pipe在BitBucket上。 更新 我试图在构build控制台中使用我的私钥,但它不起作用: echo "… my private key …" >> ~/.ssh/throwaway_key […]

在AWS EC2容器服务中实现MongoDB

我需要在Amazon的AWS EC2容器服务中实现MongoDB,我不知道如何开始使用它,有很less或根本没有文档,我想知道你们中的任何人是否已经面临同样的问题,也许我们可以分享一些解决scheme。 提前致谢 :)

Docker容器中的configurationpipe理

目前我有configuration文件存储在GitHub。 我有一个格式如下的单个json文件{ DEV: { key1 : val1, key2 : val2 } , PROD: { key1 : val1, key2 : val2 } } 。 我的构build系统克隆git仓库,构build项目并创build一个Docker镜像,并存储在私有Dockerregistry中。 我有jar文件和configuration文件复制到Docker图像。 每当我启动一个容器,我注入一个环境variables(ENV = DEV / PROD),我的代码用它来根据环境读取configuration。 我在这里有几个问题: 维护环境特定configuration的最佳方法是什么? configuration文件可能包含敏感数据,如api密钥和秘密如何在构buildDocker映像时encryption和存储和解密? 如果我想改变一些configuration,我需要触发构build,因为我的configuration文件放在Docker镜像中。 我可以将configuration文件放在Docker容器外作为一个卷,以便我可以replaceconfiguration文件并重新启动容器,以便代码读取更新的configuration? 如果我想放在Docker容器之外,我还可以使用任何集群pipe理工具进行容器编排/pipe理(Kubernetes / ECS)吗? 在Docker容器中运行应用程序的方法是通过重新启动容器而不是构build新的Docker镜像并部署新容器来读取更新后的configuration文件?

我怎样才能运行docker – 由jenkins的shell脚本组成

我试图运行命令docker-compose up -d作为jenkins的构build步骤,在“执行shell”。 作业失败,并给我下面的控制台日志: docker-compose up –build -d无法在http + docker上连接到Docker守护进程:// localunixsocket – 它正在运行吗? 如果位于非标准位置,请使用DOCKER_HOST环境variables指定URL。 构build步骤'执行shell'标记构build为失败完成:失败 当我进入jenkins工作区(/ var / lib / jenkins / workspace / app /),并试图运行docker-compose时,起初我可以得到一个正常的版本。 现在我在控制台中得到错误: ERROR: Error processing tar file(archive/tar: invalid tar header): 当然,从控制台调用时,应用程序在主目录中生成并正常运行。 Docker正在主机上运行。 可以通过普通用户运行docker-compose。 我没有将jenkins用户添加到docker组。 我甚至尝试过从http://blog.csdn.net/qiyueqinglian/article/details/46559825的一些亚洲教程,这使得我在默认/ docker中更改了DOCKER_OPTS,但是在重新启动docker服务之后,它并没有在端口4243上运行,所以我没有理解翻译或它不工作在Ubuntu 16.04(主机系统)。 jenkins没有在容器中运行,它随意安装在主机上,没有虚拟机没有docker,没有任何东西。 我试图从主机(清除等)完全删除docker和jenkins,并重新安装,仍然是相同的错误。 有任何想法吗?

无法进入Apache Karafdocker集装箱

我已经用base image apache karaf构build了Dockerfile,但无法进入Apache Karaf docker容器 [root@HNHC9F2 docker_file]# docker exec -it b8586730289b /opt/karaf/bin/karaf karaf:有一个Root实例已经在名字root和pid 132下运行了。如果你知道你正在做什么并且想要强制运行,那么导出CHECK_ROOT_INSTANCE_RUNNING = false然后重新运行命令。