【数据分析】如何使用docker部署程序并移植(算法、接口)

这篇具有很好参考价值的文章主要介绍了【数据分析】如何使用docker部署程序并移植(算法、接口)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原文作者:我辈李想
版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。



前言

我这里学的有限,docker部署程序就以算法、接口为例。移植涉及到2个服务器,我们把移植前服务器称为前服务器,移植后的服务器称为后服务器。

一、Docker的基本使用

1.安装Docker

# 卸载旧docker
sudo apt-get remove docker docker.io containerd runc
# 安装新docker
sudo apt update && sudo apt upgrade -y
sudo apt install docker docker.io
# docker信息
docker info

docker镜像操作

2.列出本地镜像

sudo docker images 

其中REPOSITORY:表示镜像的仓库源,TAG:镜像的标签,IMAGE ID:镜像ID,CREATED:镜像创建时间,SIZE:镜像大小。

3.获取镜像,创建本地ubuntu:13.10镜像

sudo docker pull ubuntu:13.10

4.查找镜像

sudo docker search httpd

5.删除本地镜像

sudo docker rmi hello-world

其中hello-world为本地镜像名字,可通过sudo docker images 查看。

6.创建自定义镜像

1.从已经创建的容器中更新镜像,并且提交这个镜像
2.使用 Dockerfile 指令来创建一个新的镜像

7.镜像标签

sudo docker tag 860c279d2fec runoob/centos:dev

docker容器操作

8.启动容器

命令行启动并进入容器

sudo docker run -it ubuntu /bin/bash

后端运行容器

docker run -itd --name ubuntu-test ubuntu /bin/bash

run具有很多参数,其中-d(–detach)参数不会进入容器,包括-h(–hostname)主机名、-p(–publish)端口映射、–name容器名称、-v(–volume)目录挂载等主要参数。–gpus all表示使用gpu计算。
可以参考如下示例:

sudo docker run --detach \
--hostname 202.182.104.229 \
--publish 443:443 --publish 80:80 --publish 9922:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest

9.查看所有容器

sudo docker ps -a

其中-a表示所有,其中CONTAINER ID:表示容器id,IMAGE:容器名字,COMMAND:命令,CREATED:创建时间,STATUS:运行状态,PORTS:端口,NAMES:名字。

10.停止容器

sudo docker stop <容器 ID>

11.重启容器

docker restart <容器 ID>

12.进入容器

docker attach <容器 ID>
docker exec -it <容器 ID> /bin/bash
docker exec -it <容器 name> /bin/bash

推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。

13.删除容器

sudo docker rm -f <容器 ID>

二、镜像加速

在国内环境下,我们需要设置镜像加速,要不很多镜像都是timeout错误。这里使用的是阿里的镜像加速器。需要注册阿里云平台,设置镜像加速,链接:https://cr.console.aliyun.com/cn-beijing/instances/mirrors。只需要对应系统的shell命令,逐条执行即可.
其中registry-mirrors参数每个账户都不同。

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://5afmvkgl.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

【数据分析】如何使用docker部署程序并移植(算法、接口)

三、docker容器更换软件源(linux源为阿里)

# 1.进入容器
docker exec -it <容器 ID> /bin/bash

# 命令行更换源
sed -i s@/deb.debian.org/@/mirrors.aliyun.com/@g /etc/apt/sources.list
sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list

【数据分析】如何使用docker部署程序并移植(算法、接口)

四、部署jupyter+环境+算法

1.在本地创建一个新的文件夹,用于存储Jupyter的配置文件和数据

mkdir /home/user/jupyter_notebooks

2.在终端中输入以下命令拉取Jupyter镜像

docker search anaconda
docker pull continuumio/anaconda3

3.使用以下命令运行容器,将Jupyter服务映射到本地端口8888,并将本地文件夹映射到容器中以便访问数据文件和配置文件

docker run --restart=always -idt -p 8008:8008 --name=docker_anaconda  -v /home/user/jupyter_notebooks:/home/jupyter_book continuumio/anaconda3

其中,/home/user/jupyter_notebooks是你本地文件夹的绝对路径,/home是Jupyter容器中的工作目录,可以在容器中使用Jupyter notebook打开,进行文件操作。

4.运行以上命令后,终端会返回一个容器的ID,使用以下命令可以查看容器是否正常运行

docker ps

5.设置环境

# 进入容器
docker exec -it <容器 ID> /bin/bash
# 安装环境
pip install -r reque.txt
# 启动jupyter
jupyter notebook --port 8008 --ip 0.0.0.0 --allow-root

6.算法检验

http://localhost:8888

7.本地资料存储至容器

docker cp /usr/local/anaconda3/envs/pytorch/ docker_anaconda:/opt/conda/envs

8.修改jupyrt配置

# 1.进入容器
docker exec -it <容器 ID> /bin/bash
# 生成配置文件,默认位置:/root/.jupyter/jupyter_notebook_config.py
jupyter notebook --generate-config

# 启动ipython
ipython
# 键入如下命令
from notebook.auth import passwd
# 生成秘钥 密码:tianyi2023
passwd() 
# 退出Python,先保存秘钥
exit
# 2.退出容器
exit

# 将容器jupyter_notebook_config.py复制到宿主服务器,进行修改
sudo docker cp docker_anaconda:/root/.jupyter/jupyter_notebook_config.py jupyter_notebook_config.py

# sudo vim  jupyter_notebook_config.py
# jupyter_notebook_config.py 尾部追加内容
c.NotebookApp.notebook_dir ='/home/jupyter_book' # 默认打开位置
c.NotebookApp.ip='*'  # 星号代表任意ip,这个跟mysql的权限设置相似
c.NotebookApp.allow_root =True # 允许root运行
c.NotebookApp.allow_remote_access = True  # 允许远程登入
c.NotebookApp.open_browser = False    # 建议,默认不自动打开浏览器
c.NotebookApp.password = 'argon2:$argon2id$v=19$m=10240,t=10,p=8$7tpuYVkZ6Fmlwg0UqEEXZg$b73XgSIfxCjQEKcBcuBbaw'	# 输入生成的密钥
c.NotebookApp.port =8008            # 端口号冲突可以设置为9999


# 修改完将jupyter_notebook_config.py复制到容器的原位置
sudo docker cp jupyter_notebook_config.py docker_anaconda:/root/.jupyter/jupyter_notebook_config.py
# 3.再次进入容器
docker exec -it <容器 ID> /bin/bash
# 后台启动
nohup jupyter notebook --allow-root > jupyter.log 2>&1 &

五、镜像备份和移植

1.镜像备份到本地

docker commit -m="正式版" -a="李朋飞" 895d61c1f5ab water/conda:v1
docker tag 1a3ab3bd9547 water/conda:v1

其中895d61c1f5ab 是容器id, 1a3ab3bd9547是water/conda的镜像id

docker save -o MyWater.tar water/conda:v1

其中MyWater是我们的本地备份,可以下载,移植到其他服务器。

2.后服务器加载备份

sudo docker ps
sudo docker load --input MyWater.tar
docker run -d -p 8888:8888 -v /home/user/jupyter_notebooks:/home/jupyter_book 镜像id

3.镜像备份至镜像平台

这里国内常用的是阿里云镜像。具体使用请点击链接:

4.安装平台备份

这里国内常用的是阿里云镜像。具体使用请点击链接:
Docker保存,加载镜像及发布镜像到Docker Hub 阿里云文章来源地址https://www.toymoban.com/news/detail-495713.html

到了这里,关于【数据分析】如何使用docker部署程序并移植(算法、接口)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用宝塔面板如何查看网站日志分析搜索引擎蜘蛛数据

    网站日志(确切的讲应该是服务器日志)是记录WEB服务器接收处理请求以及运行错误等各种原始信息的文件。通过查看网站日志分析数据我们可以获得很有有用的数据,例如蜘蛛访问、是否被恶意访问、网站访客来源等等网站访客在寻找什么?哪个页面最受欢迎?网站访客从

    2024年02月09日
    浏览(41)
  • 【Python数据分析】如何使用matplotlib和pyecharts制作南丁格尔玫瑰图

    目录 一、介绍 二、相关库 三、数据准备 四、pyecahrts代码实现 五、matplotlib代码实现 原文作者 :我辈理想 版权声明 :文章原创,转载时请务必加上[原文超链接](https://blog.csdn.net/qq_15028721?spm=1010.2135.3001.5421)、作者信息和本声明。 玫瑰图是弗罗伦斯·南丁格尔所发明的。又名

    2024年02月07日
    浏览(32)
  • 如何使用MATLAB软件完成生态碳汇涡度相关监测与通量数据分析

    MATLAB MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。 [1] MATLAB是matrixlaboratory两个词的组合,意为矩阵工厂(矩阵实验室),软件主要面对科学计算、可视

    2024年02月16日
    浏览(31)
  • 数据存储和分布式计算的实际应用:如何使用Spark和Flink进行数据处理和分析

    作为一名人工智能专家,程序员和软件架构师,我经常涉及到数据处理和分析。在当前大数据和云计算的时代,分布式计算已经成为了一个重要的技术方向。Spark和Flink是当前比较流行的分布式计算框架,它们提供了强大的分布式计算和数据分析功能,为数据处理和分析提供了

    2024年02月16日
    浏览(44)
  • Mysql Docker 容器重启后数据库数据丢失分析

    项目复用nacos的mysql数据库且msyql容器已存在,之前已新建好数据库并插入数据。本次需要更新数据库表结构和数据。重启myql导致数据库数据丢失。 另外,本次事故是昨天发生未及时记录,日志不够详细。 本次需要更新数据库表结构和数据,通过dbviewer操作失败报 异常,部分

    2024年02月01日
    浏览(38)
  • 京东数据分析工具(京东销售数据如何查询)

    相信很多京东或者天猫商家都会有这样的需求:想要查看各品类的销售数据,行业大盘数据、竞品的各项销售数据、各品类下的爆款商品数据、竞品店铺的数据等等,一些商智无法满足的数据不知道去哪里可以看到。 实际上,可以体验一下那些靠谱第三方平台的数据,全品类

    2024年02月06日
    浏览(46)
  • 数据驱动成功:小程序积分商城的数据分析

    在当今数字化时代,数据被认为是企业成功的关键。小程序积分商城是一种流行的营销工具,可帮助企业吸引和留住客户,并提供有关客户行为和偏好的宝贵数据。本文将深入探讨如何通过数据分析实现小程序积分商城的成功,包括数据的收集、分析和应用。 第一部分:小程

    2024年02月09日
    浏览(31)
  • 数据分析-Pandas如何整合多张数据表

    数据表,时间序列数据在数据分析建模中很常见,例如天气预报,空气状态监测,股票交易等金融场景。数据分析过程中表格重整,重新调整,重塑数据表是很重要的技巧,此处选择Titanic数据,以及巴黎、伦敦欧洲城市空气质量监测 N O 2 NO_2 N O 2 ​ 数据作为样例。 数据分析

    2024年01月17日
    浏览(34)
  • 智能数据分析的安全与隐私:如何保护数据

    在当今的数字时代,数据已经成为了企业和组织中最宝贵的资产之一。随着人工智能(AI)和机器学习技术的不断发展,数据分析和智能化处理变得越来越普遍。然而,随着数据的收集、存储和处理越来越多,数据安全和隐私问题也逐渐凸显。 数据安全和隐私是一个复杂的问题

    2024年02月21日
    浏览(38)
  • 开源数据可视化分析工具DataEase本地部署并实现远程访问

    目录 前言 1. 安装DataEase 2. 本地访问测试 3. 安装 cpolar内网穿透软件 4. 配置DataEase公网访问地址 5. 公网远程访问Data Ease 6. 固定Data Ease公网地址 结语 作者简介:  懒大王敲代码,计算机专业应届生 今天给大家聊聊开源数据可视化分析工具DataEase本地部署并实现远程访问,希望

    2024年02月03日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包