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

来源:互联网 发布:java向上取整 编辑:程序博客网 时间:2024/06/05 20:52

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:7RUN yum -y install git qemu-img which sudo python-setuptools python-yaml parted e2fsprogs && yum clean allRUN git clone https://git.openstack.org/openstack/diskimage-builder \    && cd /diskimage-builder && python setup.py installRUN git clone https://git.openstack.org/openstack/dib-utils \    && cd /dib-utils && python setup.py installRUN git clone https://github.com/openstack/tripleo-image-elements.git \    && cd tripleo-image-elements && python setup.py installENV 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

0 0
原创粉丝点击