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

news2024/12/23 15:16:34

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


文章目录

  • 前言
  • 一、Docker的基本使用
    • 1.安装Docker
    • 2.列出本地镜像
    • 3.获取镜像,创建本地ubuntu:13.10镜像
    • 4.查找镜像
    • 5.删除本地镜像
    • 6.创建自定义镜像
    • 7.镜像标签
    • 8.启动容器
    • 9.查看所有容器
    • 10.停止容器
    • 11.重启容器
    • 12.进入容器
    • 13.删除容器
  • 二、镜像加速
  • 三、部署jupyter+环境+算法
    • 1.在本地创建一个新的文件夹,用于存储Jupyter的配置文件和数据
    • 2.在终端中输入以下命令拉取Jupyter镜像
    • 3.使用以下命令运行容器,将Jupyter服务映射到本地端口8888,并将本地文件夹映射到容器中以便访问数据文件和配置文件
    • 4.运行以上命令后,终端会返回一个容器的ID,使用以下命令可以查看容器是否正常运行
    • 5.设置环境
    • 6.算法检验
    • 7.本地资料存储至容器
    • 8.修改jupyrt配置
  • 四、镜像备份和移植
    • 1.镜像备份到本地
    • 2.后服务器加载备份
    • 3.镜像备份至镜像平台
    • 4.安装平台备份


前言

我这里学的有限,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

其中-d参数不会进入容器,run具有很多参数,包括-h、-p、-n、-v等主要参数。–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 命令,因为此退出容器终端,不会导致容器的停止。

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

在这里插入图片描述

三、部署jupyter+环境+算法

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

mkdir /home/user/jupyter_notebooks

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

docker search anaconda
docker pull continuumio/anaconda3

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

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

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

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

docker ps

如果容器正常运行,可以在浏览器中使用以下地址访问Jupyter服务:http://localhost:8008

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配置

# 启动ipython
ipython
# 键入如下命令
from notebook.auth import passwd
# 生成秘钥 密码:tianyi2023
passwd() 
# 退出Python,先保存秘钥
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

# 后台启动
nohup jupyter notebook --allow-root > jupyter.log 2>&1 &

四、镜像备份和移植

1.镜像备份到本地

docker save -o MyOnlyofficeV1.tar 仓库名:tag

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

2.后服务器加载备份

sudo docker ps
sudo ddocker load --input MyOnlyofficeV1.tar
docker run -d -p 8888:8888 -v /home/user/jupyter_notebooks:/home/jovyan/work 镜像id

3.镜像备份至镜像平台

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

4.安装平台备份

这里国内常用的是阿里云镜像。具体使用请点击链接:
Docker保存,加载镜像及发布镜像到Docker Hub 阿里云

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/652720.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数学专业毕业生做高性能计算工程师合适吗?

一般人看到数学专业都会很奇怪&#xff0c;学数学有什么用呢&#xff0c;能就业吗&#xff1f;其实不然。像数学、应用数学、物理、地球物理、化工等传统工科专业&#xff0c;在当今形式多变的就业环境下&#xff0c;反而是通用的香饽饽。 拿数学专业来举例&#xff0c;就有有许…

MATLAB | 如何使用MATLAB获取顶刊cell全部绘图(附带近3年全部图像)

众所周知&#xff0c;学习科研绘图、配色最好的办法就是去观摩顶级期刊上的作图&#xff0c;本来想着收集各个顶级期刊绘图提供给大家&#xff0c;但是每年的图像加起来大约3-5G&#xff0c;撑死也就能提供三四年的图像&#xff0c;再多内存可能不太够了&#xff0c;于是我写了…

【python】pandas-DataFrame类型数据重命名列表头

目录 0.环境 1.将DataFrame类型数据某一列重命名 0.环境 windows jupyter notebook python 使用场景&#xff1a; 在处理数据对齐的问题时&#xff0c;两个表格的对齐列名不相同&#xff08;一个数据集是DataFrame类型&#xff0c;一个数据集是geopandas类型&#xff09;&…

加速金融营销科技价值发现,神策数据双引擎赋能数字化客户经营

6 月 9 日&#xff0c;「开放融合&#xff0c;引领营销 5.0 新纪元——暨 2023 年金融营销科技价值发现论坛」在中国杭州成功举办。 神策数据创始人 & CEO 桑文锋发表了《双引擎赋能数字化客户经营》的主题演讲&#xff0c;并与数十位来自银行、证券、保险、互联网金融等领…

基于Eclipse+Java+Swing+Mysql实现进销存管理系统

基于EclipseJavaSwingMysql实现进销存管理系统 一、系统介绍二、功能展示1.登陆2.商品列表3.购买清单4.个人中心5.商品采购6、采购记录7、商品预警 三、数据库四、其它1.其他系统实现五.获取源码 一、系统介绍 用户&#xff1a;商品列表、购买清单、个人中心 管理员&#xff1…

腾讯安全升级三大原子能力,助力企业构建数字安全免疫力

数字化时代&#xff0c;企业如何治好“发展”与“安全”失调症&#xff1f;近日,腾讯安全、IDC、腾讯研究院等联合举办研讨论坛&#xff0c;发布“数字安全免疫力”模型框架&#xff0c;提出用免疫思维应对新时期下安全建设与企业发展难以协同的挑战。 (腾讯安全联合IDC发布“…

Redis入门 - Redis概念和基础

原文首更地址&#xff0c;阅读效果更佳&#xff01;Redis入门 - Redis概念和基础 https://www.codermast.com/database/redis/introduce-redis.html 什么是NoSQL NoSQL&#xff0c;泛指非关系型的数据库。NoSQL最常见的解释是 "non-relational"&#xff0c; 很多人…

Spring Boot整合Redis

文章目录 一、Redis概述二、使用Spring Boot 整合 Redis&#xff08;一&#xff09;搭建Redis环境&#xff08;二&#xff09;下载和安装Redis可视化管理工具&#xff08;三&#xff09;创建Spring Boot项目RedisDemo&#xff08;四&#xff09;创建实体类1、创建地址实体类 - …

建立和使用Python自定义模块

文章目录 &#xff08;一&#xff09;现状以及问题&#xff08;二&#xff09;Python模块&#xff08;2.1&#xff09;包的结构&#xff08;2.2&#xff09;包的位置&#xff08;2.2.1&#xff09;site-packages目录&#xff08;2.2.2&#xff09;dist-packages目录 &#xff0…

更新阅读量时的常见错误:脏读

最近在对开发完的项目进行测试&#xff0c;于是用到了Jmeter来进行压力测试…… 这里准备压测的是一个获取详情的方法&#xff0c;在获取详情的通知更新阅读量&#xff01; 上图中代码的逻辑是&#xff1a; 1. 根据ID获取实体 2. 判断实体是否存在 3. 使用三目运算获…

【c++11】c++1特性

c11 c11简介列表初始化std::initializer_list autodecltypenullptr 结语 c11简介 从C0x到C11&#xff0c;C标准10年磨一剑&#xff0c;第二个真正意义上的标准珊珊来迟。相比于C98/03&#xff0c;C11则带来了数量可观的变化&#xff0c;其中包含了约140个新特性&#xff0c;以…

datax-web

【DataX-Web的搭建&#xff08;Windows/Linux环境&#xff09;_datax源码部署_zxj19880502的博客-CSDN博客 mirrors / WeiYe-Jing / datax-web GitCode https://github.com/WeiYe-Jing/datax-web/blob/master/userGuid.md 安装使用 这里只记录关键点 1、先安装datax、参考…

LED太阳能感应庭院灯开发方案

在庭院装修的时候&#xff0c;常会使用一些外部美观的照明灯&#xff0c;提供户外照明。为此&#xff0c;宇凡微推出了LED太阳能感应庭院灯方案&#xff0c;庭院灯控制芯片采用宇凡微YF单片机。 一、LED太阳能感应庭院灯方案的原理 太阳能感应庭院灯根据不同的设计需求&#xf…

dp算法篇Day4

"我把每一天都当做新开始&#xff0c;新革命。" 16、买卖股票的最佳时机含手续费 (1) 题目分析 完成一笔交易才算达成交易。但其实你可以将手续费加在任意一处上。 (2) 算法原理 class Solution { public:int maxProfit(vector<int>& prices, int fee)…

从敏捷到精益-漫谈敏捷实践

敏捷宣言与12条原则 让我们一起来回顾一下敏捷宣言和12条原则&#xff0c;不了解这些&#xff0c;怎么进行实践呢。 敏捷宣言&#xff1a; 个体与交互 胜过 过程与工具 可以工作的软件 胜过 面面俱到的文档 客户协作 胜过 合同谈判 响应变化 胜过 遵循计划 敏捷12条原则 1、…

Python学习49:词频统计

类型&#xff1a;文件‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬ 描述‪‬‪‬…

WPS表格:使用技巧

文章目录 1、时间1&#xff09;调整时间格式① 连接符② 将“常规、短日期、长日期”格式下的时间调整为自定格式③出现“数字”的情况④ 日期格式方便筛选、统计&#xff1b;转换格式&#xff1b;计算⑤出现#的几种情况⑥ 用“数据---分列”统一变成日期格式 2&#xff09;计算…

SpringBatch从入门到实战(三):作业参数

一&#xff1a;JobParameters传参 api获取 Spring Batch认为一个Job的唯一依据是 job_name hash(JobParameters) 作为联合主键盘 &#xff0c;所以每次执行都会传入一个唯一变动的参数&#xff0c;spring batch 就会认为这是不同的job&#xff0c;就可以重复执行同一个job。 …

Excel中数据转换成甘特图(wps)

数据准备 Excel数据如下表所示&#xff1b; 耗时这一列需要有&#xff0c;没有的话先添加耗时列&#xff1a;单元格E3-C31 自动计算耗时&#xff1b; 转换甘特图 1、调整数据 开始时间列&#xff0c;单元格格式 设置为 常规 2、插入堆积条形图 选中 关键人物 开始时间 和…

Axure必备入门知识

导语 Axure作为专业的原型工具&#xff0c;深受众多产品经理的喜爱&#xff0c;同样也是产品经理应聘的必备技能工具。本期小编将从软件安装及汉化、软件授权、软件使用、案例学习、使用问答、元件库、原型模板及实战原型、原型托管演示等方面介绍Axure必备入门知识&#xff0c…