#!/bin/sh dock_name=smart-os loop_dev=$(losetup -f) # fdisk -l disk.img 查看 start 为 2048, unit 512 所以 -o 偏移扇区 1048576 = 2048 x 512 losetup -o 1048576 ${loop_dev} disk.img # 挂载磁盘到本地目录 mkdir -p ./tmp_docker mount -t ext3 ${loop_dev} ./tmp_docker cd ./tmp_docker tar -cpf ../${dock_name}.tar --directory=./ --exclude=proc --exclude=sys --exclude=dev --exclude=run --exclude=boot . cd .. umount ./tmp_docker rm -rf ./tmp_docker losetup -d ${loop_dev} # 删除镜像 clear() { if [ ! "`docker ps -a | grep ${dock_name}`" = "" ] ; then docker stop `docker ps -a | grep ${dock_name} | awk '{print $1}'` docker rm `docker ps -a | grep ${dock_name} | awk '{print $1}'` fi if [ ! "`docker images -a | grep ${dock_name}`" = "" ] ; then docker rmi `docker images -a | grep ${dock_name} | awk '{print $1}'`:1.0 fi } # 导入镜像 run() { cat smart-os.tar | docker import - ${dock_name}:1.0 docker run -t -i ${dock_name}:1.0 /bin/sh } clear run clear # 删除镜像文件 if [ -f "${dock_name}.tar" ]; then rm -rf ${dock_name}.tar fi