离线装docker和相关应用保姆级教程——以安装docker-jupyter/notebook为例

0 背景

有时候,客户是行政或者事业单位,对数据基础设施的安全性极高,导致必须被驻派到现场部署,而由于现场没有任何外网,下载任何东西只能靠自己的流量,或者前一天下载好来,一种比较合适的做法是将应用打包成一个docker,然后带过去现场,此教程将一步一步教你如何离线安装docker,并且如何一步一步安装你想要的相关应用。

docker的作用:免去了部署应用相关环境的困扰,并且可以部署多个应用互不影响,在一台机器上加快部署多个应用。

1 确定机器型号

你需要让现场人员运行下面这个命令:

cat /etc/os-release

在这里插入图片描述
根据上图可以确定机器的架构为Centos linux7,为arm指令集架构。

2 下载docker包

  • 先去这里选择属于你的机器类型:链接: 镜像下载
    根据上图,我选择的是:在这里插入图片描述
  • 为了实现在这台机器上安装docker这个目标,我们必须在这个界面上下载以下组件,注意版本号一定要一致:
    在这里插入图片描述

3 安装到docker

  • 想办法将文件传输到该机器:如使用MobaXterm学习版、U盘拷贝等方法,具体方法步骤自行百度。
  • 下面是我将我的所有安装文件,放到该目录下在这里插入图片描述
  • 然后在终端输入cd /home/hhl/docker安装文件/
  • 继续输入:sudo yum install ./*
  • 等待安装完毕即可。

4 启动docker

  • 启动docker服务:systemctl start docker
  • 设置开机自动启动:systemctl enable docker
  • 测试:docker version,必须出现如下客户端和服务器的版本信息才算安装成功:
    在这里插入图片描述

5 离线安装应用

这里以一个jupyter notebook环境安装为例,展示一下离线安装应用的流程。具体如何操作需要根据你自己需要的应用灵活贯通!

  • 当你在自己公司有网络的时候,使用vm16安装一台虚拟机,需要和你在现场的机器型号一致。

  • 然后安装好docker,直接输入sudo yum install docker-ce可以实现自动联网安装,然后按照上一步“4 启动docker”验证即可。

  • 然后输入sudo docker search jupyter,获取下图的这个下载量最高的镜像名字“jupyter/scipy-notebook”
    在这里插入图片描述

  • 输入sudo docker pull jupyter/scipy-notebook,拉取这个镜像。等待拉取完毕,然后使用sudo docker images,可以发现已经存在了这个镜像:在这里插入图片描述

  • 输入 docker run -it -p 8888:8888 -v 宿主机某路径:容器中路径 容器id ,运行jupyter notebook进行测试。注意:此处的只有“宿主机某路径”需要你自己自定义——输入你虚拟机上面的某个路径,你使用notebook编程时候需要用到什么数据文件也要放到里面去,这样你用notebook的时候才能使用;容器中的路径取决于镜像说明;容器id上图有,自己填上去即可。例如本jupyter notebook:docker run -it -p 8888:8888 -v /home/notebook:/home/jovyan bcf091d6ab66

  • 按界面上面显示的url即可打开notebook进行编程,可以将url中127.0.0.1换成你虚拟机的ip地址(可通过ip addr查看)进行远程控制。

  • 特别注意!!!,如果你这里需要安装python第三方库,你需要把你从python库官网下载到的相关依赖包全部放入宿主机某路径,然后打开notebook进行手动pip安装(输入!pip install redis-4.5.5-py3-none-any.whl即可),如下图所示,这是我用到的所有第三方库:在这里插入图片描述

  • 如果你不知道用什么第三方库版本,那就直接在公司可联网的虚拟机上下载安装一遍就知道去哪下载了,上面会显示下载的url,比如下面我为了安装hanlp这个第三方库,就需要安装十几个依赖包,这些包包库库都需要通过这些url下载后,再复制到到你的宿主机某路径上面去。在这里插入图片描述

  • 接下面我需要对这个notebook进行打包,使用命令docker save -o jupyter_scipy_notebook.tar jupyter/scipy-notebook。格式为:docker save -o <image_file.tar> <image_name>这里的导出压缩包名字可以自己定义,镜像名字就是上图中的第一个字段值。

  • 这个压缩包可能会比较大,将它移动到你的网盘或者U盘(宿主机某路径下的所有数据文件也要拷贝到现场机器中去),然后复制到现场的机器中,在现场无法联网的机器中使用命令docker load -i <image_file.tar>将镜像载入,本例中使用docker load -i jupyter_scipy_notebook.tar

  • 最后同样使用命令docker run -it -p 8888:8888 -v /home/notebook:/home/jovyan bcf091d6ab66进行测试运行。

  • 使用url进入notebook之后,打开终端,然后进去使用pip install whl文件所在的文件夹,或者不打开终端模式,直接在notebook上面输入!pip install whl文件所在的文件夹,也行。例如在下图中,进入download目录后,输入!pip install ./*就可以安装该目录下的所有的python依赖。

  • 至此,你可以愉快地在你无法联网的现场机器上进行notebook编程啦!你需要在离线docker下使用其他应用的安装流程也是类似的。

6 总结

  • 整个部署的过程,关键其实在于现场机器版本的确定所有依赖项的确定,其他方面都很方便,主要依赖于docker良好的封装性。
  • 但是现场的离线环境自己公司的环境还是会有极大的不同,这个我觉得还是要去现场解决效率更高,所以准备好足够的数据流量吧!
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值