我想知道如何使用CLI(首选)或curl 列出远程Docker注册表(我们案例中的tutum,但我认为不重要)的Docker镜像的所有标签?最好不要从远程注册表中提取所有版本,我只想列出标签.
我在Docker容器中运行Jenkins.我想知道Jenkins容器是否也可以成为Docker主机?我正在考虑的是从Jenkins内部为每个集成测试构建启动一个新的docker容器(以启动数据库,消息代理等).因此,在完成集成测试后应关闭容器.有没有理由避免以这种方式从另一个docker容器内运行docker容器?
有没有办法忽略Ansible的SSH真实性检查?例如,当我刚刚设置一个新服务器时,我必须对这个问题回答"是":
GATHERING FACTS ***************************************************************
The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
RSA key fingerprint is xx:yy:zz:....
Are you sure you want to continue connecting (yes/no)?
Run Code Online (Sandbox Code Playgroud)
我知道这通常是一个坏主意,但我将其合并到一个脚本中,该脚本首先在我的云提供商处创建一个新的虚拟服务器,然后自动调用我的ansible playbook来配置它.我想在脚本执行过程中避免任何人为干预.
我正在寻找在DC/OS上运行Docker容器时是否使用Marathon和Chronos,Docker Swarm或Kubernetes的一些优缺点.
例如,何时使用Marathon/Chronos比使用Kubernetes更好,反之亦然?
现在我主要是进行实验,但希望我们在夏天之后开始在生产中使用这些服务之一.这可能会使Docker Swarm失去资格,因为我不确定它是否会在那时生产.
我喜欢Docker Swarm的原因是它本质上只是"Docker命令",你不需要学习全新的东西.我们已经在使用docker-compose,它将与Docker Swarm一起开箱即用(至少在理论上),这将是一个很大的优势.我对Docker Swarm的主要关注是它是否涵盖了在生产中运行系统所需的所有用例.
我知道有人谈论在配置映射发生变化时自动重启pod的能力,但据我所知,Kubernetes 1.2尚未提供.
那么(我认为)我想做的是与使用配置映射的pod相关联的部署资源的"滚动重启" .是否有可能,如果是这样,如何在Kubernetes中强制重新启动部署而不更改实际模板中的任何内容?这是目前最好的方式还是有更好的选择?
我想知道本地是否存在具有特定标记的Docker镜像.如果Docker客户端本身不能这样做,我可以使用bash脚本.
只是为潜在的bash脚本提供一些提示,运行该docker images命令的结果将返回以下内容:
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
rabbitmq latest e8e654c05c91 5 weeks ago 143.5 MB
busybox latest 8c2e06607696 6 weeks ago 2.433 MB
rabbitmq 3.4.4 a4fbaad9f996 11 weeks ago 131.5 MB
Run Code Online (Sandbox Code Playgroud) 背景:
目前我们正在使用Docker和Docker Compose来提供服务.我们已将不同环境的配置外部化为定义应用程序读取的环境变量的文件.例如一个prod.env文件:
ENV_VAR_ONE=Something Prod
ENV_VAR_TWO=Something else Prod
Run Code Online (Sandbox Code Playgroud)
和一个test.env文件:
ENV_VAR_ONE=Something Test
ENV_VAR_TWO=Something else Test
Run Code Online (Sandbox Code Playgroud)
因此,我们可以在启动容器时简单地使用prod.envor test.env文件:
docker run --env-file prod.env <image>
Run Code Online (Sandbox Code Playgroud)
然后,我们的应用程序根据中定义的环境变量获取其配置prod.env.
问题:
apiVersion: v1
kind: Pod
metadata:
labels:
context: docker-k8s-lab
name: mysql-pod
name: mysql-pod
spec:
containers:
-
env:
-
name: MYSQL_USER
value: mysql
-
name: MYSQL_PASSWORD
value: mysql
-
name: MYSQL_DATABASE
value: sample
-
name: MYSQL_ROOT_PASSWORD
value: supersecret
image: "mysql:latest"
name: mysql
ports:
-
containerPort: 3306
configuration environment-variables configuration-files docker kubernetes
由于boot2docker已弃用,我已切换到docker-machine但我不知道如何打开端口docker-machine.在boot2docker我可以这样做:
boot2docker ssh -L 27017:localhost:27017
Run Code Online (Sandbox Code Playgroud)
只要SSH连接打开,这就会将端口27017从VirtualBox转发到localhost 27017.请注意,我不是在寻找一种在VirtualBox中永久打开端口的方法.我怎样才能实现这一目标docker-machine?
我发现我有多个环境(例如test和prod)很常见,但我希望启动的Docker容器在两种环境中都是相同的.唯一的区别是我想要使用的应用程序配置env-file.由于我有多个容器和它们之间的依赖关系,我想使用docker-compose.但是afaik我只能指定文件env-file内部docker-compose.yml(参见docs).如果是这种情况,那么我需要将原始docker-compose.yml文件克隆到两个不同的文件(一个用于测试,一个用于prod),只是为了指向不同的env文件.这意味着我必须维护两个docker-compose.yml文件而不是一个,如果我做了任何更改,我需要更新这两个文件.
这真的是根据设计吗?为什么docker-compose不让我指明--env-file我什么时候docker-compose up或docker-compose run?
背景
我们希望将不可变事件存储在(最好)托管服务中.一个事件的平均大小小于1 Kb,我们每秒有1-5个事件.存储这些事件的主要原因是,一旦我们创建可能对这些事件感兴趣的未来服务,就能够重放它们(可能使用表扫描).由于我们在谷歌云中,我们显然将谷歌的服务视为首选.
我怀疑Bigtable非常适合这个,但根据价格计算器,我们每月花费超过1400美元(这对我们来说是一个大问题):
看看像BigQuery这样的东西每月3美元的价格(如果我没有遗漏必要的东西):
即使无模式数据库更适合我们,我们也可以将事件存储为带有一些元数据的blob.
问题
我们可以使用BigQuery而不是Bigtable来降低成本吗?例如,BigQuery有一些称为流插入的东西,对我来说似乎是我们可以使用的东西.有什么东西会在短期或长期内咬我们,如果走这条路线我可能不会意识到这一点吗?
google-app-engine bigtable google-bigquery google-cloud-bigtable
docker ×7
kubernetes ×3
ansible ×1
bash ×1
bigtable ×1
boot2docker ×1
dcos ×1
docker-dind ×1
docker-swarm ×1
jenkins ×1
marathon ×1
ssh ×1