相关疑难解决方法(0)

Docker镜像推送SSH(分布式)

TL; DR基本上,我正在寻找:

docker push myimage ssh://myvps01.vpsprovider.net/
Run Code Online (Sandbox Code Playgroud)

我没有理解整个Docker Hub/Registry事件的基本原理.我知道我可以运行私有注册表,但为此我必须设置实际运行服务器的基础结构.

我偷偷摸摸了Docker的内部工作(至少是文件系统),看起来Docker图像层只是一堆tarball,或多或少,有一些精心设计的文件命名.我天真地认为用一个简单的Python脚本来做分布式推/拉是不可能的,但当然我没有尝试,所以这就是我问这个问题的原因.

有没有任何技术原因为什么Docker不能像Git或Mercurial一样进行分布式(无服务器)推/拉?

我认为这将是一个巨大的帮助,因为我可以将我在笔记本电脑上构建的图像直接推送到应用服务器上,而不是首先推送到某个地方的repo服务器然后从应用服务器拉出来.或者我可能误解了这个概念,而且注册表是我绝对需要的一个非常重要的功能?

编辑一些有希望解释我为什么要这样做的上下文,请考虑以下场景:

  • 在我的笔记本电脑上进行开发,测试(OSX,运行Docker机器,使用docker-compose来定义服务和依赖项)
  • 通过脚本部署到实时环境(自编,bash,dev机器上的几个依赖,基本上只是Docker机器)
  • 除了SSH访问和Docker守护程序之外,部署到具有极少依赖性的新VPS.
  • 没有"永久"服务在任何地方运行,即我特别不希望托管永久运行的注册表(特别是所有VPS实例都无法访问,尽管这可能通过一些聪明的SSH隧道解决)

目前最好的解决方案是使用Docker机器指向VPS服务器并重建它,但它减慢了部署,因为我每次都必须从源构建容器.

ssh docker docker-registry

26
推荐指数
4
解决办法
8735
查看次数

在主机之间移动docker-compose containerets

我想把我的应用程序堆栈,包括3个docker镜像并由docker-compose管理,并将它从我的开发机器整个移动到生产机器上.我知道有几种方法可以直接使用docker:

  • 将图像推送到注册表并将其从生产中拉出
  • docker从开发中保存,然后在生产中加载docker
  • 在生产时重建图像(宁愿将依赖关系保留在生产中,所以不是一个好的选择.)

我目前倾向于做docker save然后docker load,但我想知道是否有办法用docker-compose管理的整套容器来做这件事?

提前致谢

docker docker-compose

10
推荐指数
1
解决办法
2820
查看次数

如何在docker-machine中为机器设置TLS证书

我想做的事:

我已经在TLS验证设置为true的一台机器上运行dockerd。我想将此主机添加为计算机docker-machine

我做了什么:

我使用以下命令启动dockerd:

$ sudo dockerd -D --tls=true --tlscert=cert.pem --tlskey=key.pem -H tcp://172.19.48.247:2376
Run Code Online (Sandbox Code Playgroud)

在第二台计算机上,我获取了以下变量:

export DOCKER_HOST=tcp://172.19.48.247:2376                                                                                 
export DOCKER_TLS_VERIFY=1
export DOCKER_CERT_PATH=/path/to/ssl
Run Code Online (Sandbox Code Playgroud)

并成功运行docker命令:

$ docker run busybox echo hello
hello
Run Code Online (Sandbox Code Playgroud)

然后我添加了这个主机docker-machine:

docker-machine create --driver none --url=tcp://172.19.48.247:2376 dockerhost
Run Code Online (Sandbox Code Playgroud)

我要去哪里了:

我现在x509: certificate signed by unknown authority出错了。

$ docker-machine ls
NAME        ACTIVE   DRIVER       STATE     URL                        SWARM   DOCKER    ERRORS                                     Unknown   
dockerhost   -        none         Running   tcp://172.19.48.247:2376           Unknown   Unable to query docker version: Get https://172.19.48.247:2376/v1.15/version: x509: certificate signed by unknown authority
Run Code Online (Sandbox Code Playgroud)

我尝试使用,docker-machine config但是不起作用: …

docker docker-swarm docker-machine

2
推荐指数
1
解决办法
3473
查看次数