算法部署时,常出现测试通过生产上环境各种问题的情况,很影响效率。

因此想采用docker的方式部署,市面上的安装都不是很顺利,因此本文总结各种安装方式,采用离线的方式安装,较为稳定且可行。

1、Docker离线安装
1.1下载docker安装包
官方地址:Index of linux/static/stable/x86_64/docker-19.03.9.tgz

1.2 解压缩
tar -zxvf docker-19.03.9.tgz

cp -p docker/* /usr/bin

1.3将docker注册为系统服务
① 在/usr/lib/systemd/system/目录下,创建docker.service文件
② 编辑docker.service文件

vi /usr/lib/systemd/system/docker.service

[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target docker.socket
[Service]
Type=notify
EnvironmentFile=-/run/flannel/docker
WorkingDirectory=/usr/local/bin
ExecStart=/usr/bin/dockerd \
-H tcp://0.0.0.0:4243 \
-H unix:///var/run/docker.sock \
--selinux-enabled=false \
--log-opt max-size=1g
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target

1.4重启生效
重启守护进程

# systemctl daemon-reload

# systemctl start docker

查看docker状态

# systemctl status docker

设置开机启动

#systemctl enable docker

查看docker 信息

# docker version

2、封装python应用
以项目docker_test为例

2.1导出pip list下面的依赖包
pip freeze > requirements.txt

把导出的requirements.txt放在项目docker_test目录里

2.2编写Dockfile文件
在docker_test同目录下创建Dockfile文件,格式如下:

# 基于的基础镜像

FROM python:3.7

# 维护者信息

MAINTAINER name humz18

# 将docker_test目录下的代码添加到镜像中的code文件夹(两个目录参数中间有空格分开)

ADD ./lp_nlp /code/lp_nlp

# 设置code文件夹是工作目录

WORKDIR /code/lp_nlp

# 安装支持

RUN pip install --user -r requirements.txt -i Simple Index

EXPOSE 9013

#docker运行时即运行app.py文件
CMD ["python","webserver_nlp_interface_9013.py"]

2.3 制作镜像
 docker build -t imagename Dockerfilepath

# Dockerfilepath:Dockerfile 所在文件夹名称,当前名录为 “.”

docker build -t lp_nlp .

2.4运行镜像
docker run -t -i lp_nlp

2.5 build image 和 启动容器
①后台式启动方式

docker run -d -p 9013:9013 lp_nlp

②交互式启动方式

docker run -i -t -p 9013:9013 lp_nlp

③日志输出到本地(挂载方式)

docker run -d --privileged=true -v /本地日志路径:/容器日志路径 -p 9008:9008 registry.taikangcloud.com/icqip-docker-t/ocr_bill_structure:v1

3、设置docker泰康源镜像
3.1 进入daemon.json文件、修改镜像源
vim /etc/docker/daemon.json

写入:

{
"registry-mirrors":["http://mirror.taikangcloud.com"],
"insecure-registries":["registry.it.taikang.com","registry.taikangcloud.com"]
}

vim /etc/default/docker
写入:

3.2 重启docker
systemctl restart docker

sudo service docker restart

4、登录harbor
docker login

申请docker hub的账号密码,以后镜像可上传管理。(类似github,不过是托管镜像)

5、Docker使用gpu
5.1安装NVIDIA-CONTAINER-RUNTIME

在Migration Notice | nvidia-container-runtime查看支持的操作系统和版本,并根据对应选项,添加源,因为我是centos7,所以添加方式为:

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.repo | \
sudo tee /etc/yum.repos.d/nvidia-container-runtime.repo

然后直接yum install 就可以了

sudo yum install nvidia-container-runtime

进行测试,如果能成功出现显卡信息就可以了

docker run -it --rm --gpus all centos nvidia-smi

6、docker常用命令
1、docker中 启动所有的容器命令

docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)

2、docker中 关闭所有的容器命令

docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)

3、docker中 删除所有的容器命令

docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)

4、docker中 删除所有的镜像

docker rmi $(docker images | awk '{print $3}' |tail -n +2)

5、停止所有的容器

docker stop $(docker ps -a -q)

6、删除所有的容器(只删除单个时把后面的变量改为container id即可)

docker rm $(docker ps -a -q)

Docker离线安装及python算法部署详细介绍相关推荐

  1. Python【算法中心 03】Docker部署Django搭建的Python应用流程实例(Docker离线安装配置+Django项目Docker部署)

    1.Docker离线安装配置 rpm版本安装 # 系统版本 rpm -qi centos-release Name : centos-release Version : 8.1 Release : 1 ...

  2. docker离线安装并导入镜像

    实际项目开发过程中,客户环境大多是全内网环境,无法连接互联网.这样docker就不能yum在线联网安装,所需要的镜像也不能在线pull下载.这时就需要进行离线安装docker及镜像. 1.下载dock ...

  3. linux怎么离线安装gcc文件夹,CentOS下离线安装gcc环境,图文详细,方法全面

    CentOS下离线安装gcc环境,图文详细,方法全面 下载 方式1:如果有网的虚拟机还没有安装,可以直接 yum install --downloadonly --downloaddir=/root/ ...

  4. centos7 安装英伟达驱动;cuda;docker离线安装;docker gpu离线安装;制作自己的cuda镜像;安装 容器中ssh协议

    原创不易,谢谢! centos7 安装英伟达驱动,cuda,docker安装,docker gpu安装,制作自己的cuda镜像,docker ssh协议 无论是笔记本还是台式电脑,这一步关键 参考资料 ...

  5. python中easygui有几种_一、Python 模块EasyGui详细介绍

    Python 模块EasyGui详细介绍 EasyGui 官网: -http://easygui.sourceforge.net 官方的教学文档: -easygui-docs-0.96\tutoria ...

  6. python中类的详细介绍及使用

    python中类的详细介绍及使用 前面我们介绍了类的创建及面向对象的三大特性.本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 一.类的成员 类的成员包括:属性和方法. 属性可以分为: ...

  7. Docker 离线安装 .net Core 6.0 环境部署

    一.背景 最近参与开发一个烟草行业的项目, 由于项目的特殊性, 所有的服务器都只能访问内网, 以往使用 " docker pull images " 下载镜像的方式不可行了.只能另 ...

  8. Docker离线安装部署

    卸载Docker(没有Docker就跳过) 一.准备工作 1.杀死docker有关的容器: docker kill $(docker ps -a -q) 2.删除所有docker容器: docker ...

  9. linux离线安装pyhs2,Python 下载及安装详细步骤

    安装python分三个步骤: *下载python *安装python *检查是否安装成功 1.下载Python (2)选择下载的版本 (3)点开Download后,找到下载文件 Gzipped sou ...

最新文章

  1. SylixOS移植时mk_time函数问题
  2. 【小白学习keras教程】八、Sequential Model和模型函数API两种模型建立方法
  3. mfc怎么显示jpg png图像
  4. SAP Spartacus forms.scss的引用问题
  5. 这么香的技术还不快点学起来,含BATJM大厂
  6. 4核a5中断linux,中断与时钟 - osc_a5pzxo31的个人空间 - OSCHINA - 中文开源技术交流社区...
  7. 如何使用 @ OutputCache 指令的 VaryByCustom 属性来缓存不同版本的页面(二)
  8. PHP Ctype函数(转)
  9. MacOS新版本,不能装老版本Xcode
  10. Memtest移植到海思上面测试DDR
  11. 问题:VBoxManage not found. Make sure VirtualBox is installed and VBoxManage is in the path
  12. 明朝版的《北京欢迎你》
  13. 用Python实现数据筛选与匹配
  14. 解决目前阶段翻译插件Translation谷歌翻译的问题
  15. Learun极简ERP框架
  16. 负数与正数相乘怎么算_为啥两个负数相乘结果是正数?
  17. 多ip服务器代理设置
  18. 13、案例分析-在C#中识别车牌
  19. update my laptop, cpu T2390 to T9300, disk 160G...
  20. 《SpringBoot与Shiro整合-权限管理实战---从构建到模拟数据库登入》

热门文章

  1. 不同计算机通过家庭组无法共享的是,windows7开家庭组与其他版本系统共享文件失败的解决方法...
  2. 联想c245如何使用html,Windows 8的驱动是否能给Windows 8.1用
  3. 计算机二级基础知识【重】
  4. 微信公众号花式排版技巧分享
  5. 2惠普暗影精灵恢复出厂设置
  6. 手机图片分辨率怎么调整?如何将图片修改300DPI?
  7. Matlab快捷键等总结
  8. NVIDIA显卡架构
  9. 笔记本硬盘坏了还能恢复数据吗 笔记本硬盘坏了怎么修复
  10. 人脸对齐之SDM / 人脸对齐之LBF / 人脸实时替换