制作适用于Docker的CentOS 6.5基础镜像
在 Public docker images · dotcloud/docker Wiki 上有一个 docker 官方的 CentOS 6.4 的基础映像。
但是我想要CentOS 6.5的基础镜像,并且希望自己定制一个适合自己的基础镜像。
在Docker文档的”创建基础镜像”章节中有制作方法的说明,并且在dotcloud/docker仓库的docker/contrib/mkimage-rinse.sh文件中也可以找到CentOS的脚本。
此外,我还找到了一篇名为”Building a RHEL/CentOS Docker base image – devops and security”、另一篇名为”Dockerで自分専用のDebianイメージを作る – ただのにっき(2013-12-13)”,还有一篇名为”Ubuntuならdockerのカスタムベースイメージを作成する – @znz blog”的文章。
进一步搜索时,在dotcloud/docker的GitHub上发现了一个关于创建官方CentOS 6.4基础镜像的脚本,它被称为Official CentOS base image · Issue #290。因为它更简单,所以决定使用这个脚本。
把CentOS镜像的URL更改为ftp.riken.jp并进行CentOS 6.5的编辑和保存。我们将命名为cent65.sh。
#!/bin/bash
MIRROR_URL="http://ftp.riken.jp/Linux/centos/6.5/os/x86_64/"
MIRROR_URL_UPDATES="http://ftp.riken.jp/Linux/centos/6.5/updates/x86_64/"
yum install -y febootstrap xz
febootstrap -i bash -i coreutils -i tar -i bzip2 -i gzip -i vim-minimal -i wget -i patch -i diffutils -i iproute -i yum centos centos65 $MIRROR_URL -u $MIRROR_URL_UPDATES
touch centos65/etc/resolv.conf
touch centos65/sbin/init
tar --numeric-owner -Jcpf centos-65.tar.xz -C centos65 .
在CentOS 6.5上执行上述脚本。
$ ./cent65.sh
要注册已经创建的基本镜像,请执行以下命令。
$ cat centos-65.tar.xz | sudo docker import - local/centos:6.5
我尝试执行以下的echo命令,顺利地执行成功了。
$ docker run local/centos:6.5 echo 'hello world'
将自己制作的基础镜像注册到Docker仓库。
为了在其他设备上使用,我将在 https://index.docker.io/ 注册。你可以在 apatheia.info 上找到有关使用Docker进行虚拟环境构建的说明。你也可以参考 Docker 官方文档中的 “通过仓库共享镜像” 部分。
注册 Docker Index 并创建账户。
在浏览器中打开 https://index.docker.io/,点击右上方的 “signup” 链接,在表格中填写必要的详细信息,然后点击 [sign up] 按钮。您将收到一封注册确认邮件,请点击邮件中的链接完成注册。
注册基础图像
使用Docker来构建虚拟环境-这里是apatheia.info的详细步骤注册。
$ docker ps -a -notrunc
我想查找要commit的图像的ID。
$ docker commit -author="Hiroaki Nakamura <hnakamur@gmail.com>" -m="CentOS 6.5 x86_64 minimal" b7f2422dc993801dbda0b566a5dd515aa7af0d792f9159c56f16c6035492d1c4 hnakamur/centos:6.5
请按照以下方式提交(请根据需要更改图像的ID)。
剩下的只有
sudo docker push hnakamur/centos
按下并推动。
在Docker Index上搜索hnakamur时,会得到hnakamur: Search Results | Docker Index的结果,并且可以在hnakamur/centos Repository | Docker Index上查看详细页面。