当前位置: 首页 > 云计算, 虚拟化 > 正文

使用yum直接生成Docker image

默认创建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/

本文固定链接: https://sudops.com/docker-image-created-by-yum.html | 运维速度

该日志由 u2 于2014年03月14日发表在 云计算, 虚拟化 分类下,
原创文章转载请注明: 使用yum直接生成Docker image | 运维速度
关键字: , ,

报歉!评论已关闭.