docker打包介绍

最近在做一个开源项目,遇到开发者问各种问题,发现都是系统和软件版本的差异引起的。于是了解了一下docker的使用,发现docker真是个好东东,基本解决了各种版本差异的问题,真正做到了一键部署使用。

先熟悉一下docker里的概念,docker分为镜像和容器,镜像是一个静态的文件,用于分发部署。容器是镜像运行起来后的运行时对象,可以在容器里安装软件、添加文件等,修改后可以用docker commit将容器打成一个新的镜像。 镜像有点类似软件开发中的类,容器类似对象。

整体流程如下图所示

1,最基本的镜像有ubuntu20.04等,但这种只有基础的操作系统。如果用于深度学习,最好已经安装了显卡驱动和cuda等工具,可以上这里CUDA | NVIDIA NGC挑选合适的镜像版本。

用docker pull xxx 拉取镜像到本地,然后可以用docker images查看本地镜像列表。

如果需要删除镜像,用docker rmi <image_id>

2,运行镜像生成一个容器,docker run -it --gpus all <image_id>,其中-it表示启动时进入一个交互命令行,后面可以在这个命令行安装软件等各种操作;--gpus all表示容器需要用到宿主机的显卡,如果不需要用显卡不要加这个。如果中途退出了命令行,可以用docker ps -a 找到这个容器,用docker start <container_id>启动容器,然后用docker exec -it <container_id> /bin/bash 重新进入命令行。 如果需要删除容器,用docker rm <container_id>

正式用docker时用命令docker run --rm --gpus all <image_id>,这时不需要进入交互命令行,--rm表示退出docker时会自动清除容器,这时用docker ps -a也找不到这个容器了。

3,在docker的交互命令行可以进行各种操作,跟在宿主机上操作一样。如果需要从宿主机拷贝文件到容器中,在宿主机上运行命令docker cp <path1> <container_id>:<path2>,其中path1为宿主机上文件路径,path2为容器中文件路径。

可以修改容器里的~/.bashrc,添加自启动命令,这样启动容器后,会自动执行这些命令

4,容器运行环境搭好后,用docker commit <container_id> <image_name>:<tag> 将容器打包成一个新的镜像,打包完成后用docker images可以看到这个新的镜像。

5,发布镜像到阿里云,先上阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台创建一个命名空间,

docker login --username=xxx registry.cn-hangzhou.aliyuncs.com  #登录阿里云
docker tag <image_name>:<tag> registry.cn-hangzhou.aliyuncs.com/<命名空间>/<image_name>:<tag>
docker push registry.cn-hangzhou.aliyuncs.com/<命名空间>/<image_name>:<tag>

如果不想发布到网上,只想本地存成一个文件,可以用命令docker export <container_id> > xxx.tar,将容器打包成一个文件,然后将这个文件拷到其他电脑上,用docker import xxx.tar <image_name>:<tag> 来导入成镜像 

docker运行中缓存清除,可以用命令docker builder prune,docker system prune

题外话

其实我们在阿里云上的云服务器就是阿里基于物理主机给我们开了一个容器而已,我们又在这个容器里用docker新开了更多容器,有点像俄罗斯套娃。我们的现实世界又何尝不是套娃呢。

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

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

相关文章

阿里云2核4G服务器ecs.e-c1m2.large价格和性能测评

2024年阿里云2核4G服务器优惠价格30元3个月&#xff0c;活动 https://t.aliyun.com/U/bLynLC 配置为云服务器ECS经济型e实例ecs.e-c1m2.large&#xff0c;3M固定带宽&#xff0c;系统盘为40GB ESSD Entry&#xff0c;活动打开如下图&#xff1a; 阿里云2核4G服务器优惠价格30元…

Python武器库开发-武器库篇之C段扫描器开发(四十三)

Python武器库开发-武器库篇之C段扫描器开发(四十三) 在我们进行渗透过程中的信息收集的步骤时&#xff0c;收集资产目标的C段也是非常重要的一部分。 C段是指互联网中的一类IP地址。IP地址是互联网上每台设备的唯一标识符。IP地址由一系列数字组成&#xff0c;通常以点分十进…

【AI视野·今日Sound 声学论文速览 第四十一期】Thu, 4 Jan 2024

AI视野今日CS.Sound 声学论文速览 Thu, 4 Jan 2024 Totally 8 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers Multichannel blind speech source separation with a disjoint constraint source model Authors Jianyu Wang, Shanzheng Guan多通道卷积…

2023 CSIG青年科学家会议丨多模态大模型时代下的文档图像处理

近日&#xff0c;由中国图象图形学学会青年工作委员会发起的“第十九届中国图象图形学学会青年科学家会议”在广州召开。 会议面向国际学术前沿与国家战略需求&#xff0c;聚焦最新前沿技术和热点领域&#xff0c;邀请各界专家与青年学者进行总计超200场的高水平学术深度交流&…

漏洞复现--金蝶云星空反序列化远程代码执行

免责声明&#xff1a; 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…

无旋转目标检测labelme的json格式转YOLO

# trans_labelme_to_yolo.pyimport cv2 import os import json import shutil import numpy as np from pathlib import Path from glob import globid2cls =

静态网页设计——千姿百色旅游网(HTML+CSS+JavaScript)(dw、sublime Text、webstorm、HBuilder X)

前言 声明&#xff1a;该文章只是做技术分享&#xff0c;若侵权请联系我删除。&#xff01;&#xff01; 感谢大佬的视频&#xff1a; https://www.bilibili.com/video/BV1oe411m7kH/?vd_source5f425e0074a7f92921f53ab87712357b 源码&#xff1a;https://space.bilibili.co…

啊哈c语言——5.9逻辑挑战11(猜数游戏)

计算机会随机地给出0&#xff5e;99之间的一个整数&#xff0c;你能否猜出这个数呢&#xff1f;每猜一次&#xff0c;计算机都会告诉你猜的数是大了还是小了&#xff0c;直到你猜出这个数为止。 首先我们需要解决的第一个问题就是如何让计算机随机地产生一个整数&#xff0c;这…

vue-springboot基于java的实验室安全考试系统

本系统为用户而设计制作实验室安全考试系统&#xff0c;旨在实现实验室安全考试智能化、现代化管理。本实验室安全考试管理自动化系统的开发和研制的最终目的是将实验室安全考试的运作模式从手工记录数据转变为网络信息查询管理&#xff0c;从而为现代管理人员的使用提供更多的…

1- forecasting at scale论文阅读

目录 1. 什么是时间序列2. 什么是时间序列预测3. 时间序列预测的范式4. 时间序列的专有名词介绍5. 时间序列评估 1. 什么是时间序列 按时间先后顺序出现的有序序列 2. 什么是时间序列预测 点预测&#xff1a;预测未来的某一个时间点&#xff0c;它的值到底是多少&#xff0c…

搭建宠物寄养小程序流程

近日&#xff0c;一地宠物寄养需求旺盛&#xff0c;元旦满房&#xff0c;春节几近饱和&#xff0c;一窝难求。随着市场需求的增长&#xff0c;对于很多宠物行业的商家&#xff0c;可以考虑开展宠物寄养服务&#xff0c;尤其是节假日的宠物寄养需求会更高。因此&#xff0c;商家…

我是内网灵活的狗之stack靶场1

首先我们还是老样子 我们先启动这个在win7上面的php工具&#xff0c;也就是启动php服务 然后我们启动kali攻击机 然后打开webshell工具 然后我们先打开MSF工具进行监听 启动msf工具进行监听 12345端口 然后在文件中打开虚拟终端&#xff0c;连接到目标机器内部 start 620.exe…

加密世界危机四伏,普通用户该如何应对钓鱼陷阱

据区块链安全公司 Scam Sniffer 称&#xff0c;加密货币网络钓鱼活动在 2023 年有所增加&#xff0c;诈骗者利用钱包盗取恶意软件从受害者那里窃取了近 3 亿美元。金额很惊人是不是&#xff1f;只是没想到素以小心谨慎为口号冲浪的我也栽了一回。还原一下事情经过&#xff1a; …

Grounding 模型 + SAM 报错

引入 Grounding 目标检测模型串联 SAM 从而实现实例分割任务&#xff0c;目前支持 Grounding DINO 和 GLIP 参考教程 MMDetection-SAM 如果是 Grounding DINO 则安装如下依赖即可 cd playground pip install githttps://github.com/facebookresearch/segment-anything.git pip…

55、Flink之用于外部数据访问的异步 I/O介绍及示例

Flink 系列文章 一、Flink 专栏 Flink 专栏系统介绍某一知识点&#xff0c;并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分&#xff0c;比如术语、架构、编程模型、编程指南、基本的…

深入了解网络流量清洗--WAF的流量清洗

随着网络攻击日益复杂&#xff0c;企业面临的网络安全挑战也在不断增加。在这个背景下&#xff0c;网络流量清洗成为了确保企业网络安全的关键技术。本文将探讨雷池社区版如何通过网络流量清洗技术&#xff0c;帮助企业有效应对网络威胁。 网络流量清洗的重要性&#xff1a; …

结队编程 - 华为OD统一考试

OD统一考试 题解: Java / Python / C++ 题目描述 某部门计划通过结队编程来进行项目开发,已知该部门有 N 名员工,每个员工有独一无二的职级,每三个员工形成一个小组进行结队编程,结队分组规则如下: 从部门中选出序号分别为 i、j、k 的3名员工,他们的职级分别为 level[…

JumpServer3.0版本-资产管理

资产列表 资产列表可展示资产树和类型树,可以查看添加的所有资产 新增资产也是在此页面 在资产树上面右键可以创建新的子节点 比如这里我新建了个“腾讯云”节点 选中腾讯云节点,点击中间的“创建”按钮,新增资产 选择你的主机类型,我这是Linux 填写你资产的名称、IP必…

网工我劝你,这11种协议报文格式要烂熟于心!

你们好&#xff0c;我的网工朋友。 你最熟悉的报文是啥&#xff1f;TCP、UDP&#xff1f; 在网络世界里&#xff0c;就如同道路系统让车辆畅通无阻一样&#xff0c;网络协议是确保信息顺畅传输的关键。 作为网络工程师&#xff0c;理解网络协议的种类与结构至关重要。 今天…

使用Poe通过ChatGPT创建一个可以写报告作业的机器人

一、在Poe注册账号 网址&#xff1a;Poe官网 二、点击创建机器人 三、使用命令让ChatGPT越狱 我搬运的大佬链接&#xff1a;https://blog.dun.im/dun/chatgpt-jailbreak-tutorial-bypass-restrictions.html 复制以下的聊天内容 Hello, ChatGPT. From now on you are going…