Docker中默认的私有registry

我需要在Docker中设置自己的私有registry,通常保留所有内部的Docker镜像。 为了使这更简单,我想在内部设置一个名为Docker-Image的project/component ,就像你从https://index.docker.io/获取的正常的Docker-images一样。 我确信,我将永远不会从index.docker.io中以这种格式抓取图像,所有这些图像都将来自我们的内部索引器。 即使是imagename格式的图像,像centos也会从我们的内部存储库中取出。 那么,有没有办法让我改变默认的索引器? 或者至less将我的私人索引器从端口5000更改为默认尝试的东西; 即从private_indexer.internal/repo_name而不是private_indexer.internal:5000/repo_name抓取图像。 是把index.docker.io在我们自己的DNS指向我们的内部IP最好的解决scheme?

如何build模Docker / Kubernetes的PostgreSQL故障转移群集?

我还在包围着Kubernetes,而且应该如何工作。 目前,我正在努力了解如何使用stream式复制,扩展和自动故障转移/故障回复( pgpool-II , repmgr ,select毒药)来模拟PostgreSQL群集。 这个方法的主要问题是PostgreSQL实例的双重属性,configuration方面 – 它是一个主或冷/暖/热备用。 如果我增加副本的数量,我希望他们都作为备用,所以我想像创buildpostgresql-standby复制控制器与postgresql-master复制控制台分开。 不过,我也希望其中一个备用数据库在当前主数据库closures的情况下成为主数据库,所以它毕竟是一个常见的postgresql复制控制器。 我到目前为止唯一的想法是将复制configuration放在外部卷上,并pipe理容器外部的状态和状态更改。 (在PostgreSQL的情况下,configuration可能已经在其data目录中的一个卷上,这本身显然是我希望在卷上的东西,但这不是重点) 这是正确的方式,还是有其他更清洁的方式吗?

我如何让gitlab-ci-runner的DinD图像caching中间图像?

我有一个Dockerfile,从安装texlive-full软件包开始,这个软件包很大,需要很长时间。 如果我的docker build在本地docker build ,安装后创build的intermedate镜像被caching,后续的构build速度很快。 但是,如果我推送到我自己的GitLab安装,并启动GitLab-CI build runner,似乎总是从头开始,重新下载FROM映像,并再次执行apt-get安装。 这对我来说似乎是一个巨大的浪费,所以我想弄清楚如何让GitLab DinD图像caching构build之间的中间映像,到目前为止没有运气。 我已经尝试使用–cache-dir和–docker-cache-dir作为gitlab-runner register命令,无济于事。 这甚至是gitlab-runner的DinD图像应该能够做的吗? 我的.gitlab-ci.yml : build_job: script: – docker build –tag=example/foo . 我的Dockerfile : FROM php:5.6-fpm MAINTAINER Roel Harbers <roel.harbers@example.com> RUN apt-get update && apt-get install -qq -y –fix-missing –no-install-recommends texlive-full RUN echo Do other stuff that has to be done every build. 我使用GitLab CE […]

Docker-compose环境variables

我想设置一个postgres容器,并想要设置postgreslogin: POSTGRES_USER: docker POSTGRES_PASSWORD: docker 所以我创build了docker-compose.yml web: build: . ports: – "62576:62576" links: – redis – db db: image: postgres environment: POSTGRES_PASSWORD: docker POSTGRES_USER: docker redis: image: redis 我也尝试了其他的声明db部分的环境variables的语法: db: image: postgres environment: – POSTGRES_PASSWORD=docker – POSTGRES_USER=docker 但是,这些选项似乎都不起作用,因为无论什么原因,当我尝试连接到使用各种连接stringpostgres数据库: postgres://postgres:postgres@db:5432/users postgres://postgres:docker@db:5432/users postgres://docker:docker@db:5432/users 他们都给我auth失败,而不是抱怨没有用户数据库。

如何扩展现有的docker图像?

我正在使用正式的elasticsearch Docker镜像,而不是设置自己的弹性search实例。 而且这很好,直到我想扩展它。 我想在这个ElasticSearch实例中安装奇迹以获取更多信息。 现在,dockerfile / elasticsearch会自动运行ElasticSearch并将命令设置为/bin/bash不起作用,也不会连接到容器或尝试通过SSH访问它,也不会使用apt-get install -y openssh-server安装ssh-daemon 。 在这种情况下,我可以进入容器的文件系统并执行opt/elasticsearch/bint/plugin -i elasticsearch/marvel/latest并且一切正常。 但是我怎么能安装一个额外的服务,需要与apt-get安装,当我不能有一个terminal内运行容器?

如何将更新的Docker镜像部署到Amazon ECS任务?

一旦所说的图像已经在相应的registry中更新了,使我的Amazon ECS任务更新其Docker图像的正确方法是什么?

如何将代码从Git更新到Docker容器

我有一个Docker文件试图将Django代码部署到一个容器 FROM ubuntu:latest MAINTAINER { myname } #RUN echo "deb http://archive.ubuntu.com/ubuntu/ $(lsb_release -sc) main universe" >> /etc/apt/sou$ RUN apt-get update RUN DEBIAN_FRONTEND=noninteractive apt-get install -y tar git curl dialog wget net-tools nano buil$ RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python python-dev python-distribute python-p$ RUN mkdir /opt/app WORKDIR /opt/app #Pull Code RUN git clone git@bitbucket.org/{user}/{repo} RUN pip […]

将docker-compose日志保存到文件中

我有我的生成服务器上运行的unit testing,并希望捕获日志结果分析失败时。 我还没有find一种方法将docker-compose logs的输出redirect到一个文件,或者find日志文件本身实际存在的位置。 我想要相当于: docker-compose logs > logs.txt 编辑 – 澄清: 我所有的docker集装箱产生有用的日志,这是一个手工运行的docker-compose logs显示。 我想脚本这个过程将这些相同的日志保存到我的生成服务器上的一个文件。 基本上, docker-compose logs的输出保存到一个文件,然而docker-compose logs永远不会退出。

在dockerfile中插入条件运行语句

我正在尝试编写一个docker文件,它将运行一个RUN命令来searchpackage.json文件中的一个单词并对其执行操作: 这是我简单的dockerfile: FROM ubuntu:14.04 COPY package.json package.json RUN if grep -q "grunt" package.json; then echo succeed fi 正如你可以看到我只是想要一个简单的if语句,但它得到这个错误: Step 2 : RUN if grep -q "grunt" package.json; then echo succeed fi —> Running in af460df45239 /bin/sh: 1: Syntax error: end of file unexpected (expecting "fi") INFO[0001] The command [/bin/sh -c if grep -q "grunt" package.json; […]

docker集装箱内运行docker?

我正在使用Docker容器来构build我的软件并将其部署到ec2的集合中。 在部署脚本中,我构build我的软件,然后将其打包在泊坞窗图像中。 图像被推送到我的私人registry,由我的生产ec2的拉,然后运行。 所以基本上我需要在Docker容器中运行docker。 问题是我实际上无法在我的容器上启动docker。 如果我尝试 service docker start 我明白了 bash: service: command not found 如果我尝试 docker -d 我明白了 2014/10/07 15:54:35 docker daemon: 0.11.1-dev 02d20af/0.11.1; execdriver: native; graphdriver: [e2feb6f9] +job serveapi(unix:///var/run/docker.sock) [e2feb6f9] +job initserver() [e2feb6f9.initserver()] Creating server 2014/10/07 15:54:35 Listening for HTTP on unix (/var/run/docker.sock) [error] attach_loopback.go:42 There are no more loopback device available. loopback […]