【云原生】Docker 安装启动及基本用法


前言

Docker学习需要有一定 Linux 系统基础。

本文中我们初步接触 Docker 的概念和基本用法。并依次完成下面几项任务:

  • Docker 基本概念
  • 安装 Docker
  • Docker 运行 Hello World

一、Docker 概念

Linux 容器技术很早就有了,比较有名的是被集成到主流 Linux 内核中的 LXC 项目。容器通过对操作系统的资源访问进行限制,构建成独立的资源池,让应用运行在一个相对隔离的空间里,同时容器间也可以进行通信。

容器技术对比虚拟机技术,容器更轻量级,对资源的消耗小很多。容器操作也更快捷,启动和停止都要比虚拟机快。但容器需要与主机共享操作系统内核,不能像虚拟机那样运行独立的内核。

Docker 是一个基于 LXC 技术构建的容器引擎,基于 Go 语言开发,遵循 Apache2.0 协议开源。Docker 的发展得益于为使用者提供了更好的容器操作接口。包括一系列的容器,镜像,网络等管理工具,可以让用户简单的创建和使用容器。

Docker 支持将应用打包进一个可以移植的容器中,重新定义了应用开发,测试,部署上线的过程,核心理念就是「Build once, Run anywhere」。它带来了快速高效的开发生命周期,构建了「Build, Ship and Run」流程,统一了整个开发、测试和部署的环境和流程。

Docker 容器技术的典型应用场景是开发运维上提供持续集成和持续部署的服务。

下面我们开始介绍 Docker 中的几个基本概念。

二、镜像

Docker 的镜像概念类似于虚拟机里的镜像,是一个只读的模板,一个独立的文件系统,包括运行容器所需的数据,可以用来创建新的容器。

镜像可以基于 DockerFile 构建,DockerFile 是一个描述文件,里面包含若干条命令,每条命令都会对基础文件系统创建新的层次结构。

用户可以通过编写 DockerFile 创建新的镜像,也可以直接从 Docker 的官方仓库 Docker Hub 上下载镜像使用。

三、容器

Docker 容器是由 Docker 镜像创建的运行实例。Docker 容器类似虚拟机,可以支持的操作包括启动,停止,删除等。每个容器间是相互隔离的,但隔离的效果比不上虚拟机。容器中会运行特定的应用,包含特定应用的代码及所需的依赖文件。

在 Docker 容器中,每个容器之间的隔离使用 Linux 的 CGroups(Control Groups)和 Namespace 技术实现的。CGroups(控制组)提供了资源控制: CPU、内存、磁盘等资源的访问限制。Namespaces (命名空间)提供了系统资源的隔离:进程、网络、文件系统等。

四、仓库

如果你使用过 Git 和 GitHub 就很容易理解 Docker 的仓库概念。Docker 仓库相当于一个 GitHub 上的代码库。

Docker 仓库是用来包含镜像的位置,Docker 提供一个注册服务器(Registry)来保存多个仓库,每个仓库又可以包含多个具备不同 tag 的镜像。Docker 运行中使用的默认仓库是 Docker Hub 公共仓库。

仓库支持的操作类似 Git,创建了新的镜像后,我们可以 Push 提交到仓库,也可以从指定仓库 Pull 拉取镜像到本地。

五、Docker 安装

Docker 有两个版本,Community Edition(CE) 和 Enterprise Edition(EE)。即社区版和企业版本。我们将介绍 Ubuntu 中社区版的安装过程。

5.1 设置存储库

首先更新 apt 软件包数据库,以确保软件包列表是最新的。所有的命令均在终端 Terminal 中执行:

sudo apt-get update

安装一些软件包,以允许 apt 通过 HTTPS 使用存储库:

sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

首先,我们添加阿里云提供的镜像源以便于加快国内安装速度,先添加相应的密钥

curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

再添加相应源的信息:

sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

二、安装 docker-engine

这里使用的系统是ubuntu20.04

在本地使用以下命令安装

# 更新 apt 索引库
sudo apt-get update
# 安装 docker-ce
sudo apt-get install docker-ce

设置开机启动docker服务

此时,我们可以查看其版本信息,使用如下命令:

docker version

Docker 版本信息如下图所示:
请添加图片描述

三、启动 Docker 服务

使用阿里云镜像源

国内拉取 Docker Hub 的速度非常慢,好在阿里云提供了镜像加速器。

首先,我们需要编辑 /etc/docker/daemon.json 文件:

sudo vim /etc/docker/daemon.json

请添加图片描述

然后加入如下内容:

{
    
    
  "registry-mirrors": ["https://n6syp70m.mirror.aliyuncs.com"]
}

请添加图片描述

修改之后,需要重启 Docker 服务,让修改生效。使用如下命令:

sudo service docker restart

四、Hello world

在安装之后,我们可以通过运行一个 hello-world 的镜像来验证 Docker CE 是否被正确的安装,使用如下命令:

docker run hello-world

该命令会下载一个名为 hello-world 的镜像并运行于一个容器中。当这个容器运行时,会输出一些信息并退出:

请添加图片描述

如上图中标注出的提示信息所示,提示我们安装正确。

总结

本节实验主要讲解了 Docker 的相关概念以及如何安装 Docker。

  • Docker 基本概念
  • 安装 Docker
  • Docker 运行 Hello World

下文讲解Docker 容器管理。

猜你喜欢

转载自blog.csdn.net/weixin_44009656/article/details/125089516