Day 12 Docker的简单介绍

今天来讲 Docker,你可能会想说奇怪,为什麽会突然提到 Docker 呢?

为什麽会提到 Docker?

因为在每个专案、每个模型所要建立的环境都不同,而我们可能会遇到作业系统版本不同、Kernel不同、环境变数不同或者是套件版本不一样...等问题。

假如我们用 tensorflow 1.10 开发了一个文本摘要器。之後我们想要使用 tensorflow 2.0(假设)支持的迁移学习来进行情感分析。
这个时候就可以用 Docker 建立独立的环境,以免不被外界影响。使用 Docker 并将他们放在不同的 container 中,就不用担心会破坏应用程序了。

都2021年了,总不可能还在继续用虚拟机解决吧?

Docker VS 虚拟机

Docker 与虚拟机同为虚拟化技术,他们的功能相似,同样都能用来独立作业,让主环境与部署的程序分离。然而虚拟机器因为需要模拟出整套作业系统才能运行应用程序,导致其出现启动慢、占较大记忆体等问题;若要同时执行多个虚拟机显然会降低系统成效。
因此, Docker 才逐渐成为现今的主流。

Docker 运行应用程序的环境被称作 容器 (container)。相较於虚拟机的虚拟化是实作在硬体层之上,container 则是在作业系统层上虚拟化,由於不需要另外安装作业系统,因此建立 container 所需要的硬碟容量可以大幅降低,启动速度也能够更快。

Docker Conponents

主要有3个部份:

1.Image(映像档)

Image 是一个唯读的环境模版,涵盖 Container 内的所有程序(包括应用程序、函式库、环境设定档),可用来重复建立 Container 。而 Image 可以透过撰写由命令行构成的 Dockerfile 建立,或是从 Docker hub 下载已经做好的 Image 来使用。

2.Container(容器)

Container 是根据 Image 建立的执行实例。一个 Image 可以创造出多个 Container ,它可以被启动、开始、停止、删除。每个 Cotainer 都是互相独立的平台。

3.Repository (仓库)

Repository 是存放 Image 的地方,而其中最大的公开 Repository 便是上面提到过的 Docker hub,它存放了大量的 Image 供使用者下载,我们可以在上面找到各式各样现成实用的 Image 。其概念与 Github 相似,使用者可在上面建立自己的 Repository 并透过 push、pull 等方法进行上传、存取。

今天先简单的介绍到这里,明天来介绍如何安装Docker。


<<:  Day12 要不要上云端储存& WFH

>>:  Day 12: ML APIs | Google Cloud

[Day28] 组态设定 - 我与 ASP.NET Core 3 的 30天

ASP.NET Core 中的设定是使用一或多个组态提供者 (Configuration Provi...

来画一个视力检查表吧!

前言 今天要来研究的是 canvas~ 踩下去才发现是一个大坑XD,以下先从最基本的开始认识起,最後...

【Day 29】Hook 09:自定义 Hook(Custom hook)

打造自己的 Hook 自 React 16.8 以後, 使用者就可以在 React 中 创建自定义的...

[Day 24] - React 取得永丰汇率api的json资料(2)

原来我跟javascript没那麽熟... 或者该说我把React想得太简单了呢 昨天原本用fetc...

Video播放器 PyQt5 QMediaPlayer

Python PyQt5 QMediaPlayer Video播放器 前言: 写个Python GU...