Docker:修改容器生成新镜像commit,并导出备份save,移植到其他环境load

场景

项目中使用了docker版的某软件,但是这款开源软件也有自己的一些问题,需要修改,下面讲一下如何修改已有镜像,制作自定义的镜像

制作自定义镜像

查看容器

$ docker ps

IMAGE 镜像名,对应的 CONTAINER ID为容器id
在这里插入图片描述

进入容器

$ docker exec -it 容器id /bin/bash

可以看到,进入了docker内的文件系统
在这里插入图片描述

修改文件

找到你想修改的文件

退出容器内环境

$ exit

由于我们使用exec进入,不是attach,所以exit也没关系,不会停止容器

提交容器为镜像

$ docker commit -a "OxyeMa" -m "myOnlyoffice" 容器id 仓库名:tag

sha256 出现就成功
在这里插入图片描述

查看一下,挺大一个

在这里插入图片描述

备份镜像到本地

$ docker save -o MyOnlyofficeV1.tar 仓库名:tag

这个包可以导出来,备份到其他地方,以后就可以移植到其他机器上部署了
(这边我第一次后面写的是镜像id,没用仓库名:tag,所以再load时REPOSITORY TAG 为,又使用docker tag命令改了名字)
在这里插入图片描述
可以导到本地
在这里插入图片描述

移植自己的镜像

清除演示环境

这一步我还拿自己用的Linux环境,先把容器和镜像清除了,如果你要移植到其他环境,可以忽略这一步

清除容器

$ docker ps
$ docker stop 容器id
$ docker rm 容器id
$ docker ps

在这里插入图片描述
清除镜像

$ docker images
$ docker rmi 镜像id
$ docker images

移除第二个镜像比第一个慢,移除的内容还多,这是由于docker的分层结构导致的差异
在这里插入图片描述
如果只有一个镜像,移除了是下面这样的
在这里插入图片描述

读取本地镜像

将镜像tar包导入Linux,切到所在目录执行以下命令

$ docker load -i MyOnlyofficeV1.tar

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

运行自定义容器

$ docker run -i -t -d -p 9001:80 -v /data/aws_s3/file-storage:/var/www/onlyoffice/documentserver/web-apps/wsData 镜像id

成功运行
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43859729/article/details/108327586
今日推荐