模型部署神器:高中生也能读懂的Docker入门教程

TeslaMate特斯拉神器本地Docker部署实现无公网远程访问 阅读详情

来自:马哥Linux运维

Docker 是 Golang 编写的, 自 2013 年推出以来,受到越来越多的开发者的关注。如果你关注最新的技术发展,那么你一定听说过 Docker。不管是云服务还是微服务(Microservices),越来越多的厂商都开始基于 Docker 作为基础设施自动化的工具。那么什么是 Docker?Docker与传统的虚拟机有什么区别?为何要采用 Docker?如何使用 Docker?

本文,就针对上述提到的问题,来简单介绍下 Docker。

什么是 Docker

Docker 是开源的应用容器引擎。

Docker 可以让你将所有应用软件以及它的以来打包成软件开发的标准化单元。

Docker 容器将软件以及它运行安装所需的一切文件(代码、运行时、系统工具、系统库)打包到一起,这就保证了不管是在什么样的运行环境,总是能以相同的方式运行。就好像 Java 虚拟机一样,“一次编写,到处运行(Write once, run anywhere)”,而 Docker 是“一次构建,到处运行(Build once,run anywhere)”。

Docker 是一种“容器即服务”(Docker Containers as a Service ,简称 CaaS),使得开发和IT运营团队可以对于应用的构建、发布、运行更加敏捷和可控。

概括的说:Docker 是为开发人员和系统管理员用于构建、发布、并运行分布式应用程序的开放式平台。该平台由 Docker 引擎(一个便携、轻巧的运行时和打包工具) 和 Docker Hub (一个共享应用程序和自动化工作流的云服务)等组成。Docker 可以使应用程序从组件迅速组装并消除了开发、质量保证和生产环境之间的摩擦问题。这样一来,IT部门可以更快地发布,而这些应用程序不管是运行在笔记本电脑、数据中心的虚拟机,还是任何的云,其运行过程和结果都是一致的。

我们再来看下 Docker 的 Logo 。很明显,这是一只鲸鱼,它托着许多集装箱。我们可以把宿主机可当做这只鲸鱼,把相互隔离的容器可看成集装箱,每个集装箱中都包含自己的应用程序。这 Logo 简直的太形象了!

Docker 的优点

  • 轻量级:所有容器在一台机器上共享同一个操作系统内核,这样他们立即开始,并更有效地利用内存。Image 是从分层文件系统的构建,这样他们能够共享公共文件,使得磁盘使用率和 Image 的下载更加高效。

  • 开放:Docker 容器是基于开发的标准,允许容器运行在主流的 Linux 发布版和 Microsoft 操作系统作为所有的基础设施。

  • 安全:容器使得应用程序彼此隔离,而基础架构同时为应用程序提供了额外的保护层。

Docker 与 虚拟机的区别

容器与虚拟机有着类似的资源隔离和分配的优点,但不同的架构方法使容器能够更加便携,高效等。

虚拟机的架构

每个虚拟机都包括应用程序、必要的二进制文件和库以及一个完整的客户操作系统(Guest OS),尽管它们被分离,它们共享并利用主机的硬件资源,将近需要十几个 GB 的大小。

容器的架构

容器包括应用程序及其所有的依赖,但与其他容器共享内核。它们以独立的用户空间进程形式运行在主机操作系统上。他们也不依赖于任何特定的基础设施,Docker 容器可以运行在任何计算机上,任何基础设施和任何云上。

Docker 的容器利用了 LXC,管理利用了 namespaces 来做权限的控制和隔离,cgroups 来进行资源的配置,并且还通过 aufs 来进一步提高文件系统的资源利用率,而这些技术都不是 Docker 独创。

LXC

LXC 与虚拟机的不同之处在于,它是一个操作系统级别的虚拟化环境,而不是硬件虚拟化环境。他们都做同样的事情,但 LXC 是操作系统级别的虚拟化环境,虚拟环境有它自己的进程和网络空间,而不是创建一个完整成熟的虚拟机。因此,一个 LXC 虚拟操作系统具有最小的资源需求,并启动只需几秒钟。

正如你可以在下图中看到的,左侧是 LXC 虚拟的 Ubuntu ,默认安装使用 11 MB 大小。

Docker 与 Microservices 的关系

Microservices(微服务) 依赖于“基础设施自动化”,而 Docker 正是“基础设施自动化”的利器。可以说 Docker 的火爆,一定程度上也带动了微服务架构的兴起,而微服务的广泛应用也促进了 Docker 繁荣。可以说两者相辅相成。

有关微服务的介绍,可以移步至《简述 Microservices(微服务)》。

http://www.importnew.com/24651.html

为什么要用 Docker

  • 开发更加敏捷:Docker 让开发人员可以自由定义环境,创建和部署的应用程序更快、更容易,IT 运维人员快速应对变化也更加灵活性。

  • 更加可控:Docker 使得开发人员保存从基础设施到应用的代码,帮助 IT 运维人管理拥有标准的、安全的、可扩展的操作环境。

  • 高可移植性:Docker 允许自由选择,可以是从笔记本电脑到一个团队,从私人基础设施到公共云提供商。

这样,你可以专注于开发应用,其他的繁琐事交给 Docker 去做吧。

如何使用 Docker

这可真是一个大话题,如果完整阐述足够写一本书了。好在我们的目的是做入门普及,因此我们就简单讲一下 Docker 的安装、基本使用和常用命令。

Docker安装

建议在linux环境下安装Docker,window环境搭建比较复杂且容易出错,使用Centos7+yum来安装Docker环境很方便。

Docker 软件包已经包括在默认的 CentOS-Extras 软件源里。因此想要安装 docker,只需要运行下面的 yum 命令:

yum install docker

安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动:

service docker start
chkconfig docker on

LCTT 译注:此处采用了旧式的 sysv 语法,如采用CentOS 7中支持的新式 systemd 语法,如下:

service docker start
chkconfig docker on

测试

docker version

输入上述命令,返回docker的版本相关信息,证明docker安装成功。

Hello World

下面,我们通过最简单的 image 文件"hello world",感受一下 Docker。

因为国内连接 Docker 的官方仓库很慢,因此我们在日常使用中会使用Docker 中国加速器。通过 Docker 官方镜像加速,中国区用户能够快速访问最流行的 Docker 镜像。该镜像托管于中国大陆,本地用户现在将会享受到更快的下载速度和更强的稳定性,从而能够更敏捷地开发和交付 Docker 化应用。

Docker 中国官方镜像加速可通过 registry.docker-cn.com访问。该镜像库只包含流行的公有镜像,私有镜像仍需要从美国镜像库中拉取。

修改系统中docker对应的配置文件即可,如下:

vi /etc/docker/daemon.json
#添加后
{
 "registry-mirrors": ["https://registry.docker-cn.com"],
 "live-restore": true
}

运行下面的命令,将 image 文件从仓库抓取到本地。

docker pull library/hello-world

上面代码中,docker image pull是抓取 image 文件的命令。library/hello-world是 image 文件在仓库里面的位置,其中library是 image 文件所在的组,hello-world是 image 文件的名字。

抓取成功以后,就可以在本机看到这个 image 文件了。

docker images
#显示结果
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/hello-world latest f2a91732366c 3 months ago 1.848 kB

现在,运行这个 image 文件。

docker run hello-world
#显示结果
Hello from Docker!
This message shows that your installation appears to be working correctly.
...

输出这段提示以后,hello world就会停止运行,容器自动终止。有些容器不会自动终止,因为提供的是服务,比如Mysql镜像等。

常用命令

除过以上我们使用的Docker命令外,Docker还有一些其它常用的命令。

拉取docker镜像

docker pull image_name

查看宿主机上的镜像,Docker镜像保存在/var/lib/docker目录下:

docker images

删除镜像

docker rmi docker.io/tomcat:7.0.77-jre7 或者 docker rmi b39c68b7af30

查看当前有哪些容器正在运行

docker ps

查看所有容器

docker ps -a

启动、停止、重启容器命令:

docker start container_name/container_id
docker stop container_name/container_id
docker restart container_name/container_id

后台启动一个容器后,如果想进入到这个容器,可以使用attach命令:

docker attach container_name/container_id

删除容器的命令

docker rm container_name/container_id

查看当前系统Docker信息

docker info

从Docker hub上下载某个镜像:

docker pull centos:latest
docker pull centos:latest

执行docker pull centos会将Centos这个仓库下面的所有镜像下载到本地repository。

- end -





Docker部署HFish蜜罐:一键搭建你的“钓鱼神器“ 摘要:本文介绍了使用Docker部署国产开源蜜罐HFish的实践过程。HFish是一个基于Golang开发的多功能蜜罐框架,支持SSH、Telnet、HTTP等多种服务模拟,具有Web管理界面和分布式部署能力。作者对比了传统蜜罐工具的不足,详细说明了选择Docker部署的优势,包括环境隔离、部署便捷和扩展性好等特性,并提供了具体的部署命令和配置步骤。文章还展示了HFish的态势感知、数据大屏等特色功能,认为该工具实现了从被动防护到主动防御的转变,是提升企业安全水平的有效方案。(147字) 阅读详情

相关推荐

Java持续部署的5大神器:为什么你的部署还在手动?Jenkins+Kubernetes如何变身“一键部署大师”

如何让Java应用从“脆弱代码”变成“坚不可摧的镜像”?想象一下:你的Java应用部署像“手工包饺子”——:如何让Java应用的健康状态“一目了然”?:Kubernetes部署 + 滚动更新!:如何让Java应用实现“不死鸟”模式?🔥关注墨瑾轩,带你探索编程的奥秘!:如何在部署失败时“一键回到过去”?🔥超萌技术攻略,轻松晋级编程高手🚀。:如何让部署像“点外卖”一样简单?🔥技术宝库已备好,就等你来挖掘🚀。🔥订阅墨瑾轩,智趣学习不孤单🚀。🔥即刻启航,编程之旅更有趣。:Git标签+Helm回滚!

java专栏 963

Docker入门教程(非常详细)从零基础入门到精通,看完这一篇就够了

开发了一个项目 可以在本机运行 但是如果版本更新 可能就会导致服务不可使用 后期我们维护起来就很繁琐 因为对于每一个机器 我们都得进行环境的部署呀 配置呀什么的比如: 我在window系统下开发了一个项目(jar+redis+ES+Kafka+...) 但是我现在准备部署到服务器上去 因为不能夸平台 所以我还得重新去按照配置环境什么的 但是docker 就可以让我们 直接将项目打包然后部署上线了 不用一个个单独去维护。Docker图形化界面管理工具!提供一个后台面板供我们操作!类似于 宝塔面板。

leah126的博客 55万+

深入解析AUTOSAR中IIC的MCAL实现与Vector配置实践

本文深入解析AUTOSAR架构中IIC总线的MCAL实现与Vector配置实践,探讨IIC在汽车电子中的特殊定位及Vector的折中方案。通过Channel与Sequence设计模式、Chain特性应用及DaVinci Configurator配置步骤,提供IIC驱动的优化与安全实现方法,助力开发者高效解决车载通信问题。

weixin_29172963的博客 407

【Docker】docker入门

我们话不多说直接看docker架构图,能从中大致获取到的内容有远程仓库registry镜像images本地容器containers本地构建build几个概念。

ruisasaki的博客 2687

逆向拆解dy接口a_bogus 1.0.1.19版本核心算法(纯算版)第二部分

本文深入解析了dy接口a_bogus 1.0.1.19版本的核心算法,重点介绍了逆向分析的基础方法论、魔改Base64编码识别与还原、随机数生成与位运算解析等关键技术。通过详细的代码示例和实用技巧,帮助开发者掌握逆向工程中的关键步骤,特别是针对a_bogus参数的生成逻辑和混淆处理。

weixin_29288313的博客 411

《深入浅出强化学习原理入门》学习笔记(三)机器人找金币应用实例

《深入浅出强化学习原理入门》学习笔记(三)MDP应用实例

lxs3213196的博客 3187

Docker入门教程(详细)

个人理解:开发了一个项目 可以在本机运行 但是如果版本更新 可能就会导致服务不可使用 后期我们维护起来就很繁琐 因为对于每一个机器 我们都得进行环境的部署呀 配置呀什么的比如: 我在window系统下开发了一个项目(jar+redis+ES+Kafka+...) 但是我现在准备部署到服务器上去 因为不能夸平台 所以我还得重新去按照配置环境什么的 但是docker 就可以让我们 直接将项目打包然后部署上线了 不用一个个单独去维护。Docker图形化界面管理工具!提供一个后台面板供我们操作!

LEO 6万+

ZEMAX知识点:坐标间断面(coordinate break)

zemax知识点:坐标间断面

weixin_47638568的博客 1万+

Docker入门教程

Docker是一个开源的应用容器引擎,让开发者把他们的应用以及依赖打包到一个可移植的镜像中(打包),然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口(隔离)。

白豆五的博客 3万+

EtherCAT主站SOEM -- 29 -- STM32F767-SOEM通过 CSP模式(周期同步位置模式)控制一个电机转圈圈

以上就是EtherCAT主站SOEM – 29 – STM32F767-SOEM通过 CSP模式(周期同步位置模式)控制一个电机转圈圈的内容。有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。创作不容,如果文档对您有帮助,记得给个赞。

常驻客栈的博客--嵌入式EtherCAT 2243

【软件定义汽车】-【架构篇】-全面讲解整车电子电气架构演进

前言: 前段时间,陆陆续续写了一些电子电气架构相关的文章。这里打算再写最后一篇作为收尾,为整个系列画上句号,把坑填上,这个话题就算过去了。后续一段时间,尽量把之前文章中挖的“坑”填一下。行文逻辑将借鉴5W2H进行。 另外,本文作为一篇整合性的文章,为保证逻辑的完整性,主要是将大量过去自己文章中的内容进行梳理整合,也存在很多行业内专家的公开文章的内容,请见谅。 WHAT1:什么是汽车电子电气架构? 电子电气架构:EEA,Electrical/Electronic Architecture.

零点壹客的博客 1万+

docker入门,这一篇就够了。

2w字的docker入门篇,作者花了半个月时间才写完的,希望对大家学习docker有一定的帮助!

m0_61503020的博客 26万+

数字IC行业笔试面试全攻略

数字IC行业迎来快速发展,国产替代加速,技术创新活跃,应用领域持续扩展,但人才缺口扩大。职业发展路径清晰,从初级到首席工程师/架构师的技术路线,或转向管理岗位。薪资待遇优厚,应届生起薪25-35W,5-10年经验可达70-110W,架构师年薪超百万。薪资受公司平台、技术方向、学历背景、项目经验和地域因素影响。AI芯片、汽车电子等热门方向溢价明显,成功流片经验尤其重要。

2301_79143213的博客 761

在Docker下部署专属的下载神器qBittorrent

通过 Docker 部署 qBittorrent,不仅能快速创建一个专属的下载工具,还能够利用 Docker 提供的容器化管理和隔离机制,使得整个系统更加稳定和高效。在容器化的环境下,你可以随时迁移或者升级 qBittorrent,而不必担心对宿主机的影响。同时,Docker 还方便了资源的管理和调配,提升了使用体验。也别忘了关注星哥玩云!😊。

星哥玩云 2721

2021-09-29 每天几个LCEDA小知识——如何交叉选择并阵列放置元器件

立创EDA专业版之交叉选择并阵列放置元器件????交叉选择????阵列放置 ????交叉选择 在原理图界面,先框选需要交叉选择的元器件对象,右键,选择交叉选择(如果熟练之后,直接选择元器件,快捷键Shift+X)。 完成上述操作之后,可以看到自动跳转到PCB绘图界面,并自动选定PCB中相关的元器件,接下来不要取消选择的状态,在相关元器件被选中的情况下,即可开展阵列放置,将这些元器件都放在一个区域,方便PCB画线前的布局工作。 ????阵列放置 在布局菜单栏中,选择分布,选择阵列分布, 在弹出的对话框

l64481000的博客 1465

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

一键部署神器:Docker打包Lychee模型全流程详解

本文介绍了如何在星图GPU平台上一键自动化部署Lychee多模态重排序模型Docker镜像。该镜像封装了完整的模型推理环境,能够快速搭建支持图文多模态输入的重排序服务,典型应用于电商商品搜索、内容推荐等场景的智能排序与匹配任务。

weixin_42561464的博客 338

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【本地Docker部署PDFMathTranslate文档翻译服务并实现远程使用教程】

本文主要介绍如何在本地 Linux 服务器使用 Docker 快速部署一款超好用的 PDF 文档全文双语翻译神器 PDFMathTranslate,并结合 cpolar 内网穿透工具轻松实现远程使用翻译论文文档。无论你是学生、设计师、科研人员,在学习研究过程中需要阅读 PDF 格式的外文论文时,对于外语能力不够的人来说真的是非常痛苦。而使用市面上的翻译工具来翻译时,又因为文档中包含复杂的数学公式或图表,往往达不到期望的翻译效果。

优快云站内信: https://i.youkuaiyun.com/#/msg/chat/qyj19920704 2万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

本地Docker部署实用图片与文档处理神器Reubah与远程使用实战

在这个数字化飞速发展的时代,无论是自媒体创作者、设计师还是普通上班族,在处理图片或文档时总会遇到各种各样的问题。比如,你是不是经常因为平台限制而头疼不已?明明做好的封面图,一上传就提示“文件过大”;又或者需要将一份Word文档转换成其他格式,但网上的工具要么收费昂贵,要么使用起来复杂且不安全?今天我要给大家介绍一款神器——Reubah!它不仅能够帮你轻松解决这些问题,还能让你的数据牢牢掌握在自己手中。想象一下,在自己的本地Linux服务器上部署一个强大的图片与文档处理工具,是不是既方便又安心?

嵌入式阿齐Archie 1213

论文党必备PDF文档翻译神器:Docker部署PDFMathTranslate实战

小伙伴们,今天给大家安利一款能让你秒变学术大神的神器——。试想一下,当你面对那些让人抓狂的英文文献和复杂难懂的数学公式时,如果有个超级英雄瞬间帮你搞定一切,是不是感觉整个世界都美好了许多?PDFMathTranslate不仅能够完美保留原文档的排版与格式,还能精准实现全文双语翻译。更棒的是,在本地Linux服务器上只需几步简单操作,配合cpolar内网穿透工具,随时随地都能享受高效便捷的翻译服务。快来解锁这个学术新技能吧!

深入解析C/C++编程技巧,带你探索高效开发之路 1202

部署神器Docker

-e 代表添加环境变量, MYSQL_ROOT_PASSWORD是root用户的登录密码 进入MySQL容器,登录MySQL 1 [root@localhost ~]# docker exec -it docker_mysql /bin/bash 登录MySQL 1 mysql -u root -p ...

史天航的博客 241

DolphinScheduler 单机部署实战:Docker 一把梭,中小团队的调度神器

DolphinScheduler 单机模式(Standalone)Docker 部署实战:先对比单机、伪集群、集群三种模式的取舍,再手把手四步搭建——部署 MySQL 并用它替换默认 H2、初始化官方建表 SQL、挂载 MySQL 驱动、docker compose 启动容器。三个必踩的坑:容器内连宿主机数据库不能用 127.0.0.1、换 MySQL 后不会自动建表、不配 TZ 定时任务整整错开 8 小时。改用 MySQL 持久化后可随时重建、零数据迁移平滑升级到集群。适合中小团队离线数仓调度。

fengquan8866的博客 1156

【本地Docker部署开源低代码开发神器Appsmith与远程访问在线使用】

公司需要快速开发一个内部工具,或者你心血来潮想给团队搞个小应用,结果发现开发周期长、成本高,还得找专业开发人员?感觉像是在做一道没有答案的数学题,不仅费时还费力。但今天,我要向你们介绍一款神器——Appsmith!这可是个能让不懂代码的小白也能轻松搭建出功能强大应用的超级英雄!Appsmith 是一个开源低代码开发平台,它就像一个神奇的画板,你只需要将各种组件(如表格、图表、表单等)像拼图一样拖到你的“画布”上,就能快速构建出复杂的应用程序。

优快云站内信: https://i.youkuaiyun.com/#/msg/chat/qyj19920704 2万+

揭秘 Docker 自动部署神器 Websoft9:热门开源软件一键部署

Websoft9是一款基于Docker的自动化部署工具,专为简化企业级开源软件部署而设计。它整合了Docker Compose和Portainer,提供300+常用开源应用的一键部署方案,显著提升部署效率和质量。相比传统手动部署,Websoft9具有分钟级部署、标准化流程、低技术门槛和GitOps支持等优势,特别适合中小企业构建标准化IT环境。该工具通过预置模板和自动化编排,解决了传统部署方式效率低、易出错、难追溯等问题,是企业实现容器化落地的理想选择。

qq_55402007的博客 440

Docker 部署神器:告别 Linux 命令烦恼,一键搞定 Java 应用与中间件部署

本文主要说明Docker基础以及项目部署

少年你真的要止步于此嘛。 1214

Github 热点项目 Docker镜像秒变EXE神器!无需环境一键运行,客户部署再也不用装Docker了

无论是刚接触 Neovim 的新手,还是想提升开发效率的老用户,都能用它快速获得顺手的编程环境。通过[核心技术亮点],它能快速实现[主要功能],特别适合[典型使用场景1]和[典型使用场景2]。项目提供面包板接线教程和预制固件,新手不用写代码也能体验AI硬件开发,开发者还能自由更换大语言模型和语音合成引擎,适合创客教学、智能玩具改造等场景。这是一个能帮你集中管理多平台信息的智能助手工具。就算不懂剪辑的小白,也能一键生成可用于抖音、YouTube等平台的成品视频,解决了找素材、写脚本、后期制作的繁琐流程。

opentrending的博客 1172
上一篇: 无监督方法实现C++、Java、Python 代码转换,程序员:出了bug怎么办,两种语言都要看吗?...
下一篇: 手把手教你用 TensorFlow 实战线性回归问题
Wang_AI
博客等级 码龄12年 996粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值