使用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/

u2

Related Posts

rancher v2.x 初体验

rancher v2x

Read more

sqlalchemy.exc.TimeoutError: QueuePool limit of size 5 overflow 10 reached

Python3 + Flask + mysql5.7搭建的w…

Read more

You Missed

担心Todesk,向日葵有漏洞和数据泄露?跟我来体验下完美开源替代工具:RustDesk!

  • u2
  • 3月 20, 2026
  • 37 views

具有自我进化能力的国产大模型:MiniMax M2.7

  • u2
  • 3月 19, 2026
  • 80 views
具有自我进化能力的国产大模型:MiniMax M2.7

当AI学会读心术:MindPower框架带来的震撼与思考

  • u2
  • 3月 16, 2026
  • 54 views

AI并没有简化软件工程:它只是让糟糕的工程更容易实现了

  • u2
  • 3月 14, 2026
  • 56 views

当ChatGPT遭遇QuitGPT!

  • u2
  • 3月 13, 2026
  • 63 views

AI安全护栏:保护还是束缚?一场不对称的战争

  • u2
  • 3月 11, 2026
  • 67 views