1. 容器转为tar
docker export podid > nxrabbitmq.tar
2. tar包转为镜像
docker import nxrabbitmq.tar rabbitmq:nx
3. 镜像转为容器
docker run -dit nxrabbitmq.tar /bin/bash
4. 容器转为镜像
docker commit pid nxrabbitmq:nx /bin/bash
5. 镜像转为tar
docker save rabbitmq:latest > rabbitmq.tar
6. tar转为镜像
1. docker load -i rabbitmq.tar 2. docker tag pid rabbitmq:latest
7. 注意
镜像和TAR转换时
save的包必须用load来加载
容器和TAR转换时
export的包必须要import来加载
shell脚本获取当前脚本的文件名
1. 带后缀名
echo $0
2. 不带后缀名
1. name=${0%\.*} 2. echo $name
Docker 容器迁移
1. 把容器打包成镜像
docker commit -m "描述" -a "作者" [CONTAINER ID] [新的镜像名]
docker commit -m "my-rabbitmq" -a "eric" a922049125c4 rabbitmq-my:1.0
2. 把镜像保存成TAR
docker save -o [新的镜像名.tar] [新的镜像名]
docker save -o /home/rabbitmq.tar rabbitmq-my:1.0
3. 导入镜像
docker load -i rabbitmq.tar
4. 启动镜像
docker run -di --name rabbitmq -p 5672:5672 -p 15672:15672 -v /usr/local/docker/rabbitmq:/var/lib/rabbitmq --hostname myRabbit -e RABBITMQ_DEFAULT_VHOST=myvhost -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=test33a rabbitmq-my:1.0 docker run --name netgate-server --restart=always -p 8001:8001 -d netgate-server docker run --name netgate-server --restart=always -p 8001:8001 -d netgate-server docker run --name netgate-server-2 --restart=always -p 8001:8001 --rm -e JAVA_OPTS='-Xms2048m -Xmx3072m' -d netgate-server
5. save完的镜像 load没有标签
如果docker save -o ***.tar 镜像id
再次load加载镜像的时候会没有名称和标签,如果save的时候指定镜像名称和版本,再次load就会带上名称和标签
shell判断文件、文件夹是否存在
1. 判断文件是否存在
1. if [ -f "/home/filename" ];then 2. echo "文件存在" 3. else 4. echo "文件不存在" 5. fi
2. 判断文件夹是否存在
1. if [ -d "/home/my" ];then 2. echo "文件夹存在" 3. else 4. echo "文件夹不存在" 5. fi