在docker环境中制作openstack镜像文件

openstack的镜像制作,其实社区已经提供了工具来制作,就是diskimage-builder这个工具

可以下载代码,或者yum进行安装

git clone https://github.com/openstack/diskimage-builder.git
git clone https://github.com/openstack/tripleo-image-elements.git

现在diskimage-builder已经可以制作各种各样的镜像了,如图所示


那么我们利用在docker中制作镜像,下面就是步骤


1、centos7环境中,需要先安装docker

yum install docker

service docker start 

2、安装完成docker之后,需要制作docker镜像

Dockerfile文件

<span style="font-size:14px;"><span style="font-size:14px;">FROM centos:7
RUN yum -y install git qemu-img which sudo python-setuptools python-yaml parted e2fsprogs && yum clean all
RUN git clone https://git.openstack.org/openstack/diskimage-builder \
    && cd /diskimage-builder && python setup.py install
RUN git clone https://git.openstack.org/openstack/dib-utils \
    && cd /dib-utils && python setup.py install
RUN git clone https://github.com/openstack/tripleo-image-elements.git \
    && cd tripleo-image-elements && python setup.py install
ENV ELEMENTS_PATH usr/sharetripleo-image-elements/elements/</span></span>

3、在Dockerfile文件目录下,执行以下命令

docker build -t diskimage-create:latest .

4、创建好镜像之后,启动创建docker容器

docker run -d --name disk-create -it --privileged=true diskimage-create:latest /bin/bash

5、进入docker内之后,执行命令,开始创建centos镜像文件

disk-image-create -x -a amd64 -o centos7-0722 centos7 vm cloud-init

6、创建好的镜像就在你执行命令的目录下,如图所示



遇到过的问题: 

kpartx -l test.raw 

mount: could not find any device /dev/loop#Bad address

can't set up loop


这个问题说明是没有创建loop设备,用这个命令创建loop设备

mknod -m 0660 /dev/loopX b 7 X

注意loopX对应的X。如下面示例

mknod -m 0660 /dev/loop2 b 7 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XR风云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值