暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Docker打包本地环境为tar包给别人使用

IT运维大爆炸 2022-10-19
1973

1、简介

最近工作中需要跨部门协同合作,我的虚拟机上安装了很多包,这样一个环境运行我自己的代码都能正常使用,但是给别人使用会报缺少某些包的错误,而且让别人装的话容易装出问题,另外不同的人使用还要重新安装一遍依赖包,太麻烦了。所以,我们这边用docker镜像装好所有环境并且合入全部代码打包成docker镜像,别人就可以直接使用,省去很多麻烦的事情。

2、docker hub上拉取一个轻量化的镜像

首先从docker hub上找一个适合别人虚拟机操作系统的docker镜像,这里需要先注册登录。

在自己的虚拟机上登录个人docker账号,docker login

登录之后就可以拉取镜像了:docker pull rishabhthakur98/ubuntu18python3.6:v1,其中后面的v1是镜像的tags,可以在docker hub看到。

现在查看本地镜像就会发现多了一个刚才拉的镜像了:docker images

现在可以运行这个镜像:docker run -it e08af9d068c6【image ID】,此时本地会产生一个新的容器:docker ps -a查看。

第一次运行镜像会自动进去容器,exit退出容器。

下次进入时要先启动容器:docker start b58c5185b76e【容器ID】,然后附着进容器:docker attach b58c5185b76e【容器ID】。此时,你可以在这个容器内部安装自己需要的东西,写好各种需要的代码,下一步准备打包。

3、把建好的容器打包给其他人使用

先退出容器:exit或者ctrl + D

提交全部更改到本地容器:docker commit 【容器ID】

[root@app-15 ~]# docker ps
CONTAINER ID       IMAGE                                       COMMAND                 CREATED             STATUS             PORTS                                               NAMES
3e796e7b2f9b       harbor.wdjky.me/jky-tomcat/tomcat-re:v3.0   "./bin/catalina.sh..."   7 months ago       Up 4 weeks          0.0.0.0:32819->7001/tcp, 0.0.0.0:32820->37001/tcp   nad-consumer
[root@app-15_13 ~]# docker commit 3e796e7b2f9b
sha256:108770c148fee4ff4bd3843b31682d592dd9293768f91b6121d786034073d7d9

此时的容器会生成一个新的未命名的镜像。我们需要对它重新命名,镜像重命名:docker tag 0bc42f7ff218【镜像ID】 sqlmap_docker:v1【名称:版本】

[root@app-15 ~]# docker tag 108770c148fee4ff4bd3843b31682d592dd9293768f91b6121d786034073d7d9 sqlmap_docker:v1

镜像打包:docker save sqlmap_docker:v1 > [/root/]sqlmap_docker .tar [/root/]指定存放的路径。打包完成可以在相应目录下看到多了一个tar包,这就是你装好环境的docker镜像。

[root@app-15 ~]# docker images
REPOSITORY                             TAG                 IMAGE ID           CREATED             SIZE
sqlmap_docker                         v1                 108770c148fe        9 minutes ago       846 MB
[root@app-15 ~]# docker save sqlmap_docker:v1 > root/sqlmap_docker.tar

do把这个镜像的tar包发送给别人, 然后他那边导入你的镜像:docker load -i sqlmap_docker .tar,运行这个镜像,进入对应的容器,然后就可以在相应芳目录下运行你的代码了。

[root@app-15 ~]# ls
sqlmap_docker.tar
[root@app-15 ~]# docker load -i sqlmap_docker.tar

欢迎大家扫码关注:

本公众号只写原创,不接广告、不接广告、不接广告。下期小伙伴想学习什么技术,可以私信发我吆。


文章转载自IT运维大爆炸,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论