pipe理和移动Docker容器的最佳实践是什么?

我们正在评估Docker用于我们的应用程序,所以真的想知道以下问题:

在不同的机器间移动docker图像和容器的最佳实践是什么? 另外如何在不同地区的生产环境中pipe理容器和图像?

首先,Docker体系结构使用registry(可能是私有的或公共的(如docker Hub))的推送机制。

1)回答你的第一个问题 – 在机器之间移动Docker镜像和容器?

您可以创build图像或容器的tar文件,然后在您的机器之间移动tar文件。

使用docker ps -a进行检查,然后根据您的要求使用以下任一项:

$ docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS 68d9619a7a91 ubuntu:14.04“/ bin / bash”10秒前已退出

对于Container移动 – 使用docker导出和导入:


$ docker export 68d9619a7a91> ubuntu-container.tar

$ docker import – update <ubuntu-container.tar

对于图像移动 – 使用docker保存和加载:


$ docker图片

$ docker save -o image.tar

$ docker load <image.tar

2)第二个问题 – 在生产环境中pipe理容器?

a)最好有自己的私人注册pipe理器来pipe理您的容器所需的所有图像。 假设你有一个专门的节点作为Dockerregistry,所有你的Docker镜像都会保留下来。现在你可以把你对镜像的修改或者更新推送到registry中,然后把这个镜像从这个registry中拖到你的机器上,图片。

b)跨集群和不同云提供商pipe理图像/容器的另一个好方法是使用Kubernetes (由Google开源)。 虽然我们没有实现Kubernetes,但是刚开始研究它的文档,如果你使用docker容器和云,它看起来非常有前景。