本文主要介绍一些我自己用到的docker相关的知识,供大家参考使用。
在之前一篇文章((87条消息) 给出一个docker + gunicorn + flask 来部署模型的例子_cosmosknight的博客-CSDN博客) 中,我已经介绍了如何用docker + gunicorn + flask 来部署深度学习模型。假如我在本地已经部署好了模型,但是现在需要将它移植到其它地方,比如阿里云服务器上,那该如何操作?
1. 在阿里云上安装docker :下面是一些常用的命令:
sudo yum install -y docker # 安装docker sudo systemctl start docker # 启动docker sudo systemctl enable docker # 开机自启动docker sudo systemctl stop docker # 停止docker sudo systemctl restart docker # 重启docker2.在本地导出镜像文件并上传至阿里云服务器
假如说我在本地机器上按照之前的文章已经部署好了模型,那么我需要把镜像文件导出,拷贝并部署到阿里云服务器上。 可以采用如下方法:
(1) docker save -o my_docker_images.tar e7c9923453f3(或者是镜像名字)
(2) scp my_docker_images.tar user@1xx.2xx.3xx.4xx:/home/user/
(3) 登录该服务器后 : docker load --input my_docker_images.tar
(4) 然后再生成容器: docker run -d -p 8000:5000 -v /home/user/:/home/project/app/log --name deploy_my_model ****
有时候,由于在用docker save 时输入的是 e7c9923453f3, 而不是相应的镜像名字,使得用docker load时出现镜像的名字和标签都是 none 的情况。可以用如下命令给镜像和tag命名:
(5) docker tag [镜像id] [新镜像名称]:[新镜像标签]
例如: docker tag e7c9923453f3 my_rongqi:latest
包括查看,启动,删除等命令。
docker images # 查看当前docker中有哪些镜像 docker ps -a # 查看所有正在运行和已经停止的容器 docker ps # 查看正在运行的容器 docker stop *** # 停止运行 *** 容器 docker restart *** # 运行 *** 容器 docker stats # 查看状态 docker rm *** # 删除容器 *** docker rmi -f *** # 删除镜像文件 ***
也包括查看容器中的文件,像容器拷贝文件,和从容器中拷出文件。
# 查看容器中的文件 docker exec [容器名称] ls -ltrh ./ # 要将本地文件拷贝到容器中: docker cp file.txt 77a345897:/home/project/app/ # 要将容器中的文件拷贝出来: docker cp 77a345897:/home/project/app/log/file.txt . # 最后一个 "." 表示当前目录4.将指定用户添加到docker用户组
比如,一开始我是在root下安装docker的,但是我想让其它用户,比如 $USER 也添加进docker用户组,方法如下(请谨慎参考,时间久了,怕记错了):
sudo groupadd docker # 添加docker用户组 sudo gpasswd -a $USER docker #将登录用户加入到docker newgrp docker # 更新用户组 sudo service docker restart # 重启docker服务生效



