从EC2 AMI创build一个Docker镜像/容器

我对Docker非常陌生,正在尝试将我的AWS EC2 AMI导入到Docker镜像中。 该图像是一个m2的Linux的图像。

我还设置了一个私人docker中心(artifactory),我打算推送图像并使其可供消费。 将AMI导入到docker映像而不从基本映像启动并更新的步骤是什么?

指出任何解释也将工作。

这是我如何做到的。

在源AMI上查找描述中的根卷快照ID

的/ dev / SDA1 =卡扣eb79b0b1:15:真:GP2

使用公共Ubuntu 14.04 AMI启动实例

从快照snap-eb79b0b1创build卷(与实例运行的区域相同)。 将卷作为/ dev / sdf附加到实例

将卷挂载到/ mnt

mount / dev / xvdf / mnt

安装docker

https://docs.docker.com/engine/installation/ubuntulinux/

从挂载的根卷导入docker镜像

tar -c -C / mnt /。 | docker导入 – appcimage-master-1454216413

docker run -t -i 6d6614111fcb03d5ca79541b8a23955202dfda74995d968b5ffb5d45c7e68da9 / bin / bash

Docker可以使用docker import命令创build从tar文件创build映像。 从文档 :

 Usage: docker import URL|- [REPOSITORY[:TAG]] Create an empty filesystem image and import the contents of the tarball (.tar, .tar.gz, .tgz, .bzip, .tar.xz, .txz) into it, then optionally tag it. 

所以你应该能够从你的AMI镜像创build一个tar档案,然后把它提供给docker。

当创buildtar文件cd到目录并从那里tar树。

 cd /media/my-external-drive tar -czvf /tmp/drive-image.tgz 

然后创build图像… docker import /tmp/drive-image.tgz

这允许dockerized容器在运行时创build正确的path。