Docker镜像打包(数据丢失)

  1. 打包命令
    docker commit -a='作者' -m='备注' 容器ID 仓库名称:[TAG]
  2. 挂载说明
    挂载类似软连接(快捷方式),挂载目录新增文件在容器中不会新增,容器只是引用了挂载目录的新增
    文件,本地容器打包为本地镜像前必须将宿主机的挂载目录新增文件拷贝到对应的容器目录中,否则
    挂载目录的新增文件无法被打包到本地镜像
  3. 引用说明 
    宿主机有A文件 容器没有A文件-->容器引用宿主机A文件 容器没有A文件-->打包镜像没有A文件
    宿主机没有A文件 容器有A文件-->宿主机引用容器A文件 宿主机没有A文件-->打包镜像有A文件(宿主机不能编辑A文件)
    宿主机有A文件 容器有A文件-->容器引用宿主机A文件 容器A文件没有使用-->打包镜像有A文件(打包镜像使用容器A文件)
    经验总结:镜像打包数据不要放到宿主机挂载目录,而是将数据直接复制到容器挂载目录,宿主机挂载目录仅用作查看容器
    数据使用,编辑挂载目录文件时进入容器vim编辑(apt update、apt -y install vim),这样挂载目录中的数据就可以
    被打包进镜像(进入容器:docker exec -it --user root 容器ID /bin/bash)
  4. Docker安装Jenkins(通关版)
    https://blog.csdn.net/tongxin_tongmeng/article/details/127045712
    1.挂载目录/opt/jenkins_home拷贝到容器/opt目录
    docker cp /opt/jenkins_home 容器ID:/opt
    注:不能拷贝到/var/jenkins_home,/var/jenkins_home为Jenkins容器默认的工作目录,
    Jenkins容器创建时该目录会被重新初始化,导致数据丢失,挂载目录备份到容器/opt目录后
    将容器打包为新镜像并被备份到阿里云,新镜像从阿里云仓库拉取后,先使用新镜像非挂载方
    式创建临时容器A,将备份数据从容器A拷贝回宿主机/opt,然后删除临时容器A,最后使用新
    镜像挂载 拷贝到宿主机的备份数据/opt/jenkins_home 创建容器B,这样创建的容器B数据和
    新镜像原始容器一致
     
    2.docker commit -a='作者' -m='备注' 容器ID 仓库名称:[TAG]
    注:容器打包为镜像前不可删除容器源镜像,否则无法进行镜像打包
     
    3.镜像备份阿里云
    docker login --username=童心同萌 registry.cn-hangzhou.aliyuncs.com
    docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/test_666/jenkins:[镜像版本号]
    docker push registry.cn-hangzhou.aliyuncs.com/test_666/jenkins:[镜像版本号]
    
    
    4.阿里云拉取镜像
    docker login --username=童心同萌 registry.cn-hangzhou.aliyuncs.com
    docker pull registry.cn-hangzhou.aliyuncs.com/test_666/jenkins:[镜像版本号]
    
    5.非挂载方式创建临时容器A
    docker run -it 镜像ID
    
    6.备份数据从临时容器A拷贝到宿主机/opt、挂载目录/opt/jenkins_home赋权777、删除临时容器A
    docker cp 容器ID:/opt/jenkins_home /opt && chmod -R 777 /opt/jenkins_home && docker rm -f 容器ID
     
    7.挂载备份数据/opt/jenkins_home创建容器B
    docker run -it -v /opt/jenkins_home:/var/jenkins_home -p 9090:8080 -p 50000:50000 --name my_jenkins_9090 镜像ID
     
    8.访问测试:192.168.1.239:9090-->备份数据已经恢复
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

童心同萌

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

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

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

打赏作者

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

抵扣说明:

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

余额充值