平常写dockerFile,让我很头疼,很麻烦,有些docker不支持的,然后还要写shell脚本,让docker去执行,而且有些命令,权限还不支持,所以配置很麻烦。而我的大环境又是不会经常改变的,不用经常加外部文件之类的。所以在容器内直接操作好,打包成镜像可以免去繁琐的,脚本。

但是如果,你需要经常加file文件,还是从dockerFile入手比较好。我的文件都是通过hdfs从外部读取。

当然,最终我是觉得,最好的方式是舍去繁琐shell和dockerFile,dockerFile只用些简单的命令,如copy文件。然后我们进入容器,能快速的配置,配置完成后,在外部装一个httpd服务,我们需要修改容器的时候,直接从通过http请求的方式,下载内容,到docker容器内。这样就能完全避免,频繁的改dockerFile,频繁的测试,因为这种我觉得真的很笨蛋。

所以结论就是:在容器内,做配置是最好,也是最方便的,没有之一

默认docker,在你修改配置后,关闭docker后,配置都会初始化。

下面是操作:

修改的linux内容不会被保存,退出后就会被覆盖,唯一不会覆盖的文件是

vi ~/.bashrc

在里头写linux命令,即可(每次启动docker,他会自动执行里面的命令)

 

我刚刚进入了容器修改完了内容

现在退出容器:

docker ps -a看一下

sudo docker commit -a "clark" -m "create new img" 8a7419ac92aa sparkdemo:v0

然后执行完,你就能看到一条

你image一下,就能看到这个镜像了

sudo docker image ls

完成,到这里就完成了


将镜像打成包

sudo docker save -o sparkdemo.tar sparkdemo:v1

把之前的镜像,删除,docker stop 容器名

docker rm 容器名

docker rmi 镜像:版本

然后加载,打包后的镜像

docker load -i sparkdemo.tar

你现在,进入容器,看看配置有没有被更改

docker run -it --entrypoint /bin/bash --name upcontainer 镜像名:镜像版本

发现已经被更改,说明成功

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐