系统制成docker镜像_动手制作自己的Docker镜像

本文详细介绍了如何在CentOS 6.5环境下,通过两种方法创建自定义的Docker镜像。方法一是利用网络资源下载所需包并导入;方法二是使用本地光盘作为源制作镜像。通过这些步骤,可以得到包含特定软件包的定制化CentOS 6.5 Docker镜像。
摘要由CSDN通过智能技术生成

动手制作自己的Docker镜像,网上很多镜像供我们选择,为什么还要自己制作镜像呢?说到底,别人做的我不喜欢【没安装我想要的包】

重要说明:制作镜像的系统要和你将制作的镜像系统要相符,比如:制作Centos6.5的镜像就是要Centos 6的系统内。如果在Centos6 上制作Centos7的镜像都会出错。提示:/usr/lib64/libc.so.6文件找不到。在7的系统上制作6的同样出错。

方法一:网络资源(网络稳定就好。)

当前系统:CentOS release 6.5 3.10.94-1.el6.elrepo.x86_64 【内核是升级了,要不然无法安装Docker】

首先要安装febootstrap工具:

先装个EPEL源:

rpm -ivh http://mirrors.yun-idc.com/epel/epel-release-latest-6.noarch.rpm

安装:febootstrap

yum install febootstrap -y

利用febootstrap制作镜像,它会自动下载我们想要的包到指定目录下:

febootstrap -i bash -i wget -i yum -i man -i vim -i openssh-server -i openssh-clients -i tar -i gzip centos centos6.5 http://mirror.symnds.com/distributions/CentOS-vault/6.5/os/x86_64/

参数说明:

-i:后跟着的就是制作的基础镜像中已经包含的一些包,需要什么包可以在下面的地址中查找。

centos表示此镜像是Centos系统

centos6.5表示命令中所有的包安装到当前目录下的centos6.5的目录中,目录会自动创建。

复制当前系统中root用户的bash 基本环境到准备打包的目录下的root/目录下。正常情况下是没有文件的。

[root@Docker]# cp /etc/skel/.bash* root/

接下来就把刚才的目录导入到镜像中:

[root@Docker ]# cd centos6.5 && tar -c .|docker import - centos6.5

f67f40bb4a73f6fa3b33eeef313231267857388476c3c8f879a70c7a3075d731

看不到上面的字符相信都知道啦。

检查是否成功制作镜像;

方法二:利用本地光盘制作镜像

挂载系统光盘到/mnt目录下:

[root@Docker ~]# mount /dev/cdrom /mnt

[root@Docker ~]# ls /mnt/

CentOS_BuildTag isolinux RPM-GPG-KEY-CentOS-Debug-6

EFI Packages RPM-GPG-KEY-CentOS-Security-6

EULA RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-Testing-6

GPL repodata TRANS.TBL

images RPM-GPG-KEY-CentOS-6

建立本地源:

[root@Docker ~]# cd /etc/yum.repos.d/

[root@Docker yum.repos.d]# tar zcf yum.tar.gz .

[root@Docker yum.repos.d]# ll

total 32

-rw-r--r--. 1 root root 1926 Nov 27 2013 CentOS-Base.repo

-rw-r--r--. 1 root root 638 Nov 27 2013 CentOS-Debuginfo.repo

-rw-r--r--. 1 root root 630 Nov 27 2013 CentOS-Media.repo

-rw-r--r--. 1 root root 3664 Nov 27 2013 CentOS-Vault.repo

-rw-r--r-- 1 root root 1190 Jan 8 2013 elrepo.repo

-rw-r--r-- 1 root root 957 Nov 5 2012 epel.repo

-rw-r--r-- 1 root root 1056 Nov 5 2012 epel-testing.repo

-rw-r--r-- 1 root root 2016 Jan 12 15:51 yum.tar.gz

[root@Docker yum.repos.d]# rm -rf *.repo

[root@Docker yum.repos.d]# ls

yum.tar.gz

添加本地源文件:

[root@Docker yum.repos.d]# cat >/etc/yum.repos.d/cdrom.repo <

[c6-media]

name=CentOS-Media

baseurl=file:///mnt

gpgcheck=1

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

EOF

清除之前的yum缓存:

[root@Docker yum.repos.d]# yum clean all

接着安装apache:

yum install httpd -y

修改Apache配置文件,把网站根目录指向挂载光盘的目录:/mnt

把:292 行

DocumentRoot "/var/www/html"

修改为:

DocumentRoot "/mnt"

启动httpd服务:

service httpd start

执行如下命令:刷一下,很快这完整安装了。

febootstrap -i bash -i wget -i yum -i man -i vim -i openssh-server -i openssh-clients -i tar -i gzip centos centos6.5-base http://127.0.0.1

进入目录:centos6.5-base

复制当前系统中root用户的bash 基本环境到准备打包的目录下的root/目录下。正常情况下是没有文件的。

[root@Docker centos6.5]# cp /etc/skel/.bash* root/

最后把目录打包到镜像中即可。

[root@Docker ~]# cd centos6.5-base && tar -c .|docker import - centos6.5

3005dc0c28c7c33dafc73370d1b2c069020387641069150bc41ffd4d7a45e966

查看本地镜像列表

[root@Docker centos6.5-base]# docker images

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE

centos6.5 latest 3005dc0c28c7 17 seconds ago 372 MB

f67f40bb4a73 31 minutes ago 372.9 MB

centos centos7v1 92e2936b5246 24 hours ago 333.9 MB

centos latest 60e65a8e4030 2 weeks ago 196.6 MB

centos centos7.1.1503 fab4b1df8eb1 3 months ago 212.1 MB

这里特别注意:cd centos6.5-base && tar -c .|docker import - centos6.5

后面这个【centos6.5】是镜像名,不要跟已经存在的相同,或者直接在镜像名后再加个TAG标签:

由于我添加相同的,造成刚才利用网络资源制作的镜像名和TAG都变成NONE了。

加个TGA的情况就不同了。

[root@Docker ~]# cd centos6.5-base && tar -c .|docker import - centos6.5:v1

6c843268493d5a1cc45aff67a5b29ea4251ad85da2cf8de6cebab4a195086f71

[root@Docker centos6.5-base]# docker images

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE

centos6.5 v1 6c843268493d 10 seconds ago 372 MB

centos6.5 latest 3005dc0c28c7 3 minutes ago 372 MB

centos centos7v1 92e2936b5246 24 hours ago 333.9 MB

centos latest 60e65a8e4030 2 weeks ago 196.6 MB

centos centos7.1.1503 fab4b1df8eb1 3 months ago 212.1 MB

然后就可以使用自己创建的镜像运行容器了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值