当前位置:   article > 正文

Docker离线安装及python算法部署详细教程_在docker中python离线安装pandas

在docker中python离线安装pandas

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

因此想采用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)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/632118
推荐阅读
相关标签
  

闽ICP备14008679号