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

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

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

You Missed

雇佣AI员工,花钱上班:开发者的新”职场”荒诞剧

  • u2
  • 3月 1, 2026
  • 30 views
雇佣AI员工,花钱上班:开发者的新”职场”荒诞剧

OpenClaw 完整使用指南:自托管 AI Agent 的架构与实战

  • u2
  • 2月 25, 2026
  • 123 views
OpenClaw 完整使用指南:自托管 AI Agent 的架构与实战

Anthropic 推出 Claude Code Security:AI 驱动的代码安全神器

  • u2
  • 2月 24, 2026
  • 71 views

来自 OWASP 的代码安全检查工具:Dependency-Check,为你消除安全隐患

  • u2
  • 10月 16, 2025
  • 47 views
来自 OWASP 的代码安全检查工具:Dependency-Check,为你消除安全隐患

技术宅如何躲开越来越垃圾的CSDN?

  • u2
  • 4月 11, 2024
  • 33 views
技术宅如何躲开越来越垃圾的CSDN?

mysql连接失败:The driver has not received any packets from the server

  • u2
  • 3月 26, 2024
  • 35 views
mysql连接失败:The driver has not received any packets from the server