制作适用于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上查看详细页面。

bannerAds