目录
- 场景
- 制作自定义镜像
- 查看容器
- 进入容器
- 修改文件
- 退出容器内环境
- 提交容器为镜像
- 备份镜像到本地
- 移植自己的镜像
- 清除演示环境
- 读取本地镜像
- 运行自定义容器
场景
项目中使用了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
成功运行