默认创建Docker image的方式是通过调用Dockerfile,但这并不是唯一的方法,这里介绍一种更简单的方法,直接使用yum命令来创建自己的Docker image。
WildFly8.0.0Final版本近期发出,并且在Fedora 20的仓库中能够更新升级。现在我们创建一个最小化的WildFly image,这个应用服务器需要不少的依赖包,所以先别期望一个只有100MB的image,最终的大小可能会接近1GB。
前期准备:
虚拟机和Docker images的区别之一是虚拟机需要在自己的内河中运行,而Docker可以公用宿主机的内核。
下面的类比应该会有帮助:
虚拟机--拥有显卡,CPU,磁盘,控制器的完整的机器 Docker镜像--只有一个硬盘
你可以自由选择,但是虚拟机相对Docker来说是重量级的。我们能够在Docker上创建一个最小的镜像,可以去掉其他不必要的任何包,这样它非常轻量级,容易维护。比如busy box镜像的大小只有2.5MB,那是相当小啊。
创建镜像
脚本如下:
#!/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
docker run -i -t 05c926b5 /usr/share/wildfly/bin/standalone.sh -b 0.0.0.0
现在我们有了一个WildFly server,我们可以测试一下
$ 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地址
$ docker inspect -f '{{ .NetworkSettings.IPAddress }}' af59785a5245 172.17.0.2
非常好, WildFly可以通过http://172.17.0.2:8080来访问。
原文连接:http://goldmann.pl/