Getting Started with Docker

2020/05 21 20:27
Getting Started with Docker

Docker 是一个管理容器(Container)的开源专案,最初是基于 LXC 开发的 Container Engine。

Docker 有几个特色:

作业系统层级的虚拟化产品资源的隔离及分配更为轻量应用导向

在实务上, Docker 可以解决在任何状况下程式运行环境的一致性,大大降低系统出错的可能。

Containers 与 Virtual Machines 的差异

虽然 Container 和虚拟主机都是虚拟化服务,但是 VM 还需要再搭建一层 Guest OS,因此每装一个 VM,就需要自行再装一次 OS,而 Container 不需要安装作业系统就能执行应用程式。

Docker 额外提供了一个软体抽像层,让 Container 共用 Host OS,因此建立 Container 时不需要安装 Guset OS,更不需要等待作业系统开机时间,所以比传统 VM 还来得轻量、快速许多。


(图片来源:Docker 官网)

Docker 的底层是利用 LXC 做资源管理、利用 AUFS 做映像档(Image)管理。

另外,映像档(Image)可以用来当成 Containers 产生时相依的模组。这样一来进行系统调整或部署时,只要抽换映像档就可以解决大部份的问题。


(图片来源:Ship it with Docker!)

Images、Containers、Dockerfile、Registry

在了解 Docker 运作机制之后,有几个延伸的名词是需要清楚的。

名称功用ImagesImage 为完整的程式封装,一个 Image 里面可能包含了应用程式、作业系统或运作时所需的成份。Containers根据 Image 产生的 Instance。Image 是唯读的,Container 可以写入。每个 Container 都是独立的平台。Dockerfile描述 Image 内容的指令文件,可以透过该份文件直接建立 Docker Image。Registry存放 Image 的仓库,目前最大的为 Docker Hub

下图为各个名词相关的关係:


(图片来源:认识 Docker)

Installation

Installation

; 安装sudo apt install docker.io; 启动 Dockersudo systemctl start docker; 开机时启动sudo systemctl enable docker

测试

; 查看 docker 版本docker --versionCategories:Docker Tags: Docker


分类 AndroidAngularJSAPI BlueprintChromeDatabaseMySQLDataStructureDockerEditorVimFirefoxGitGitLabGoogle APIHadoopLanguageGoJavaJavaScriptjQueryjQueryChartNode.jsVuePHPLaravelZendFrameworkPythonMacNetworkCiscoDLinkJuniperOauthServerApacheShareUnixFreeBSDLinuxWebDesignBootstrapCSSHTMLWordpressSearch搜寻:dockerimagecontainercontainers作业系统ossudo图片