使用yum直接生成Docker image
Mar142014
默认创建Docker image的方式是通过调用Dockerfile,但这并不是唯一的方法,这里介绍一种更简单的方法,直接使用yum命令来创建自己的Docker image。
WildFly8.0.0Final版本近期发出,并且在Fedora 20的仓库中能够更新升级。现在我们创建一个最小化的WildFly image,这个应用服务器需要不少的依赖包,所以先别期望一个只有100MB的image,最终的大小可能会接近1GB。
前期准备:
虚拟机和Docker images的区别之一是虚拟机需要在自己的内河中运行,而Docker可以公用宿主机的内核。
下面的类比应该会有帮助:
1 2 |
虚拟机--拥有显卡,CPU,磁盘,控制器的完整的机器 Docker镜像--只有一个硬盘 |
你可以自由选择,但是虚拟机相对Docker来说是重量级的。我们能够在Docker上创建一个最小的镜像,可以去掉其他不必要的任何包,这样它非常轻量级,容易维护。比如busy box镜像的大小只有2.5MB,那是相当小啊。
创建镜像
脚本如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
#!/bin/bash if [ $UID -ne 0 ]; then echo "You need to run this script as root" exit 1 fi NAME=wildfly-minimal BUILDDIR=`pwd`/build # Removing the earlier build rm -rf $BUILDDIR # Install the required stuff yum -y install wildfly \ --setopt=override_install_langs=en \ --setopt=tsflags=nodocs \ --installroot $BUILDDIR \ --disablerepo=* \ --enablerepo=fedora,updates,updates-testing \ --releasever=20 \ --nogpgcheck # Clean up the cache # and fix the console issue when running the image chroot $BUILDDIR /bin/bash -x <<EOF rm -rf /var/cache/yum/* rm -rf /dev/console ln -s /dev/tty1 /dev/console EOF # Import to Docker tar -C $BUILDDIR -c . | docker import - $NAME |
现在你可以运行你的image
1 |
docker run -i -t 05c926b5 /usr/share/wildfly/bin/standalone.sh -b 0.0.0.0 |
现在我们有了一个WildFly server,我们可以测试一下
1 2 3 |
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES af59785a5245 wildfly-minimal:latest /usr/share/wildfly/b About a minute ago Up About a minute tender_euclid |
获取docker的IP地址
1 2 |
$ docker inspect -f '{{ .NetworkSettings.IPAddress }}' af59785a5245 172.17.0.2 |
非常好, WildFly可以通过http://172.17.0.2:8080来访问。
原文连接:http://goldmann.pl/
本文固定链接: https://www.sudops.com/docker-image-created-by-yum.html | 运维·速度