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依赖。文章来源:https://www.toymoban.com/news/detail-687274.html -
至此,你可以愉快地在你无法联网的现场机器上进行notebook编程啦!你需要在离线docker下使用其他应用的安装流程也是类似的。文章来源地址https://www.toymoban.com/news/detail-687274.html
6 总结
- 整个部署的过程,关键其实在于现场机器版本的确定和所有依赖项的确定,其他方面都很方便,主要依赖于docker良好的封装性。
- 但是现场的离线环境和自己公司的环境还是会有极大的不同,这个我觉得还是要去现场解决效率更高,所以准备好足够的数据流量吧!
到了这里,关于离线装docker和相关应用保姆级教程——以安装docker-jupyter/notebook为例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!