我对docker非常陌生,正在尝试将我的AWS EC2 AMI导入到docker镜像中。该镜像是一个m2 linux镜像。
我还设置了一个私有的docker hub(artifactory),打算将镜像推送到其中,并使其可供使用。如何将AMI导入到docker镜像中而不是从基本镜像开始更新的步骤?
任何解释的指针也可以。
我对docker非常陌生,正在尝试将我的AWS EC2 AMI导入到docker镜像中。该镜像是一个m2 linux镜像。
我还设置了一个私有的docker hub(artifactory),打算将镜像推送到其中,并使其可供使用。如何将AMI导入到docker镜像中而不是从基本镜像开始更新的步骤?
任何解释的指针也可以。
以下是我是如何做到的。
/dev/sda1=snap-eb79b0b1
:15:true:gp2
使用公共Ubuntu 14.04 AMI启动实例
从快照snap-eb79b0b1创建卷(在与实例相同的区域)。
将卷附加到实例作为/dev/sdf
将卷挂载到/mnt
mount /dev/xvdf /mnt
(或)
mount /dev/xvdf1 /mnt
https://docs.docker.com/engine/installation/ubuntulinux/
tar -c -C /mnt/ . | docker import - appcimage-master-1454216413
docker run -t -i 6d6614111fcb03d5ca79541b8a23955202dfda74995d968b5ffb5d45c7e68da9 /bin/bash
Docker可以使用docker import
命令从tar文件创建镜像。根据文档:
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镜像创建tar归档文件,然后将其提供给docker。
tar
命令。 - larskstar -czvf drive-image.tgz /media/my-external-drive
的语法,假设您将该卷挂载在/media/my-external-drive
上,并且您有足够的磁盘空间来存放压缩文件。 - Mark Stosberg在创建tar文件时,cd
到目录并从那里tar
整个树结构。
cd /media/my-external-drive
tar -czvf /tmp/drive-image.tgz
然后创建镜像 ...
docker import /tmp/drive-image.tgz
这使得 dockerized
容器在运行时可以创建正确的路径。