Bootstrap

Docker安装【Ubuntu22.04LTS】

前言

最近尝试用docker搭建Hadoop集群,补充一下对docker的了解,参考书《深入浅出Docker》


安装

由于采用华为云服务器安装docker,选用的服务器OS为Ubuntu22.04LTS,常见的Linux发行版都可以采用此方法安装

$ wget -qO- https://get.docker.com/ | sh
# wget获取安装脚本并以pipe形式执行此脚本
# 管道pipe符'|':将前面命令的输出作为后面命令的输入
$ sudo usermod -aG docker npoulton
# 将指定用户添加到Docker用户组
$ cat /etc/group | grep docker
docker:x:999:npoulton
# 查看是否添加成功
$ docker --version
# 查看docker是否安装成功

Docker存储驱动

1. 存储驱动是什么?

首先,Docker是需要本地存储空间的,这个空间存储的东西就是镜像层和挂载的容器文件系统;镜像层在基本上就是后续实操中选择的OS镜像,对应的也有其文件系统。
然后,由于使用容器进行的读写均发生在镜像层和文件系统,那就需要存储驱动进行管理,存储驱动采用的上层抽象设计均是“栈式镜像层存储”和“写时复制”的设计思想,但是底层实现各有不同。

2. 都有什么存储驱动?

在Linux上,Docker可选择的一些存储驱动包括AUFS(最原始也是最老的)、Overlay2(可能是未来的最佳选择)、Device Mapper、Btrfs和ZFS。

3. 用命令看一下

存储驱动是节点级别的,不是容器级别的;人话——一台机器只能选择一种驱动,不能给每个容器选不同驱动。
Linux中,可以修改/etc/docker/daemon.json进行修改,修改之后需要重启docker才能生效,并且之前的容器都不能用了。

一般没什么事就没必要修改了,这里就不给出修改的具体方式了,另外刚安装docker是没有上面那个json文件的

为啥修改引擎之后之前的容器就不能用了呢?
很简单,因为不同引擎在本地存储位置不同
在这里插入图片描述
这个路径下存放了驱动目录,emm不难发现,默认就是overlay2,再查看确认一下…
在这里插入图片描述

做个铺垫

大部分Linux存储驱动不需要或需要很少的配置。但是,Device Mapper 通常需要合理配置之后才能表现出良好性能。
默认情况下,Device Mapper采用loopback mounted sparse file作为底层实现来为Docker提供存储支持。如果读者需要的是开箱即用并且对性能没什么要求,那么这种方式是可行的。但这并不适用于生产环境。实际上,默认方式的性能很差,并不支持生产环境。
为了达到Device Mapper在生产环境中的最佳性能,读者需要将底层实现修改为direct-lvm模式。这种模式下通过使用基于裸块设备(Raw Block Device)的LVM精简池(LVM thin pool)来获取更好的性能。

简而言之,就是非生产环境对性能要求不高的时候,Device Mapper 不用管,但是在有了性能要求的时候,就需要修改它,此处按下不表,因为当前未必用得上。

;