环境准备:

装了docker的linux服务器(我用的最便宜的腾讯云,windows环境应该也可以,但是本人没尝试)

第一步:准备基础镜像

从头开始做一个镜像太麻烦了,所以我们一般先根据自己的需要下载一个基础的镜像,可以在docker hub(https://hub.docker.com/)里搜一个pull下来,或者在某个前男友的服务器里下载一个,总之找到一个就行。

我是从学院集群已经提供的镜像里选择了一个tar包。

docker 如何启动tar包 docker 打tar包_docker 如何启动tar包


如果是下载的tar包,需要放到linux服务器里,运行docker load命令加载为镜像。

docker 如何启动tar包 docker 打tar包_linux服务器_02

第二步:写Dockfile

一听要写什么file就容易心生烦躁,尤其最讨厌这个时候谁跟你说“这个很简单”,所以我觉得最好的办法还是直接看看Dockerfile什么样,有个直观的印象,然后在这个基础上按照自己需求改。

docker 如何启动tar包 docker 打tar包_运维_03


这么一看还确实不太复杂,我们逐行分析一下哈:

FROM 后面跟我们的基础镜像(我这里是general/base:latest,如果不确定你的镜像名,可以通过docker images看一下)

COPY 字面意思啊,就是复制,因为我这里需要安装多个python库,就一起放在requirements.txt里了,然后需要在pip install之前copy一下requirements.txt的内容。

RUN 后面跟你想在终端运行的命令(我这里是除了python库之外,还想安装这个libbz2-dev)。

RUN这个也是个RUN,同上,想在终端运行的命令(这不就把刚才copy的内容用pip install安装啦)。不好意思,是不是忘了说Dockerfile应该放在哪里了?

就放在你需要制作环境的linux服务器里(我就是在我的腾讯云服务器里)。

docker 如何启动tar包 docker 打tar包_docker_04

第三步:制作新镜像

写好Dockfile之后,就可以制作新镜像啦!

在有Dockerfile的路径下运行命令:

sudo docker build . -t [镜像名](我这里演示的叫“general/test”,如下图)

docker 如何启动tar包 docker 打tar包_linux服务器_05


正常运行没问题的话就会显示后面“Sending build contest to Docker daemon”

docker 如何启动tar包 docker 打tar包_docker 如何启动tar包_06


镜像创建成功会显示“Successfully built xxxxxxxx”(如下图)

docker 如何启动tar包 docker 打tar包_docker_07

第四步:保存新镜像为tar文件

运行命令:

sudo docker save -o [保存的tar文件名字.tar] [目标镜像名]

如下图:

docker 如何启动tar包 docker 打tar包_docker_08


这样就可以顺利保存啦(如下图)

docker 如何启动tar包 docker 打tar包_docker 如何启动tar包_09


但是你可能看到这个文件现在是红色的,所以如果需要传输到自己的电脑上的话,需要用chmod命令改一下权限,我一般比较懒,一律“chmod 777 xxx”。

至此,你的新镜像就做好了。