第三人称__- 的个人博客

记录精彩的程序人生

Open Source, Open Mind,
Open Sight, Open Future!
  menu
6 文章
5889 浏览
0 当前访客
ღゝ◡╹)ノ❤️

Linux 系列之 Docker 简单介绍与安装

目录

  • 简介
  • 部署方式对比
    • 物理机部署
    • 虚拟机部署
    • 容器部署
  • Docker 架构
  • Docker 安装
    • 安装准备
    • 安装步骤
  • 结尾

简介

Docker是一种容器技术,可以将应用程序和基础设施层隔离,并且可以将基础设施当做程序一样进行管理,轻松部署应用程序,使用Linux容器来部署应用程序称为集装箱化。

集装箱化的优点:

  • 灵活:即使是复杂的应用程序也可封装。
  • 轻量级:容器利用并共享主机内核。
  • 便携式:可以在本地构建,部署到云上并在任何地方运行。
  • 可扩展性:可以增加和自动分发容器副本。
  • 可堆叠:可以垂直堆叠服务并及时堆叠服务。

部署方式对比

1. 物理机部署

  • 成本高、部署慢、浪费资源、硬件限制、不利于迁移扩展

     

2. 虚拟机部署

  • 资源占用多:虚拟机会独占一部分内存和硬盘空间,可能虚拟机占用的资源远大于应用程序需要的资源。
  • 冗余步骤多:虚拟机是完整的操作系统,一些系统级别的操作步骤,往往无法跳过,比如用户登录。
  • 启动慢:分级别。启动操作系统需要多久,启动虚拟机就需要多久。

  1. 容器部署
  • 启动快:秒级别。容器里面的应用,直接就是底层系统的一个进程,而不是虚拟机内部的进程。所以,启动容器相当于启动本机的一个进程,而不是启动一个操作系统,速度就快很多。
  • 资源占用少:容器只占用需要的资源,不占用那些没有用到的资源,多个容器可以共享资源,虚拟机都是独享资源。
  • 体积小:容器只要包含用到的组件即可,而虚拟机是整个操作系统的打包。容器有点像轻量级的虚拟机,能够提供虚拟化的环境,但是成本开销小得多。

Docker 架构

  • Docker daemon : Docker 守护进程,负责后台进程、镜像、容器以及数据卷管理,还可以与其他守护进程通信以管理docker服务。
  • Client : 用于与Docker daemon交互。
  • Registry : 镜像仓库,可以理解为类似maven仓库的存在,用来存放各种docker image。
  • Images : Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变,是一个只读模板。
  • Container : 容器的实质是进程,运行于属于自己的独立的命名空间。镜像(image)和容器(container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

Docker 安装

英语较好的同学建议直接查看docker官方文档进行安装

安装准备

1. 查看系统内核

Centos 版本的Docker是对系统内核有要求,官方文档要求系统内核至少3.8以上,且Docker只能运行在64位的系统中

uname -r

uname.png

2. 可选,yum更新

yum -y update

安装步骤

安装的所有操作均在root权限下执行,如果没有root权限,可使用 sudo命令执行

例:sudo yum install

1. 卸载旧版本Docker

yum remove docker \
           docker-client \
           docker-client-latest \
           docker-common \
           docker-latest \
           docker-latest-logrotate \
           docker-logrotate \
           docker-engine

2. 安装相关依赖

yum -y install yum-utils device-mapper-persistent-data lvm2

3. 添加软件源信息

官方源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

阿里源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4. 安装Docker引擎

安装最新版

yum -y install docker-ce docker-ce-cli containerd.io

指定版本安装

查找历史版本

yum list docker-ce --showduplicates | sort -r

docker.png

选择需要的版本进行安装

yum -y install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

5. 启动Docker

systemctl start docker

查看Docker的安装信息

docker version

complete.png

6. 测试Docker

获取并运行我们的第一个镜像 hello-world,测试Docker是否正确安装

拉取镜像

docker pull hello-world

查看镜像

docker image ls

容器运行

docker run hello-world

运行镜像后输出以下内容,没有错误信息,证明Docker正常运行

hello.png

7. 设置镜像仓库

有时候使用docker pull获取镜像时会出现下载速度慢,甚至无法下载的情况,这是由于官方仓库在海外,你懂的,所以我们需要将Docker的镜像源改为国内源。

国内的镜像源有

  • docker官方中国区:https://registry.docker-cn.com
  • 网易:http://hub-mirror.c.163.com
  • ustc:http://docker.mirrors.ustc.edu.cn
  • 阿里云:http://<你的ID>.mirror.aliyuncs.com

在以上源中挑一个或者全部添加,阿里云镜像加速地址需要到阿里云控制台申请

tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://<你的ID>.mirror.aliyuncs.com",
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "http://docker.mirrors.ustc.edu.cn"
  ]
}
EOF

重新加载daemon.json文件并重启Docker

systemctl daemon-reload
systemctl restart docker

8. 设置开机启动

systemctl enable docker

结尾

参考


标题:Linux 系列之 Docker 简单介绍与安装
作者:hyboll
地址:https://blog.ovoll.cn/articles/2020/07/03/1593759657096.html