因为最近需要搭建环境,就需要导入docker镜像,但是人都是喜欢偷懒的,所以写了这个脚本,对镜像进行批量导入启动。
1.将需要导入的镜像和本脚本放在同一目录下再使用命令 sh <脚本名>.sh
或./<脚本名>.sh
启动脚本即可
#!/bin/bash
#启动docker
sudo service docker start
#导入镜像文件
for img in `find ./ -name '*.tar' && find ./ -name '*.gz' `
#for img in `ls *.tar.gz && ls *.tar`
do
sudo docker load -i $img
done
#启动docker仓库(这里是全部启动,可以注释掉前面两行手动写,但是这样有点违背自动的初衷,哈哈哈!)
containerNames=$(sudo docker images --format "{{.Repository}}")
Names=$(echo $containerNames | sed ':a;N;$!ba;s/\n/|/g')
#Names="name1 name2 name3 ----"
for Name in $Names
do
sudo docker run -d -P $Name
done
echo " \n "
#输出启动的docker的ID、名称和端口信息,可以根据需求添加别的显示
sudo docker ps --format "{{.ID}}\t{{.Image}}\t{{.Ports}}" | awk -F, '{print $1}''
#获取输出ip地址(仅仅适用单网卡)
ip=$(ip a |grep inet|grep -v inet6 |grep -v 127.* |awk '{print $2}'|grep -v 172.17.0.1)
echo " \nip:" ${ip%/*}
(脚本和文件处于同一目录,执行)
(输出效果)