docker安装

时间:2023-02-12 18:11:00

Docker 原理

容器的组成

容器=cgroup+namespace+rootfs+容器引擎。

其中各项分别为:

  • Cgroup 资源控制
  • Namespace 访问隔离
  • rootfs 文件隔离
  • 容器引擎 生命周期控制
Cgroup (Control Group)

Cgroup是control group的简写,属于Linux内核提供的一个特性,用于限制和隔离一组进程对系统资源的使用,也就是做资源QoS,这些资源主要包括CPU、内存、block I/O和网络带宽等

Centos 安装docker

1. 卸载旧版本

[parallels@localhost ~]$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
[sudo] parallels 的密码:
未找到匹配的参数: docker
未找到匹配的参数: docker-client
未找到匹配的参数: docker-client-latest
未找到匹配的参数: docker-common
未找到匹配的参数: docker-latest
未找到匹配的参数: docker-latest-logrotate
未找到匹配的参数: docker-logrotate
未找到匹配的参数: docker-selinux
未找到匹配的参数: docker-engine-selinux
未找到匹配的参数: docker-engine
没有软件包需要移除。
依赖关系解决。
无需任何处理。
完毕!

主机上的映像、容器、卷或自定义配置文件不会自动删除。要删除所有映像、容器和卷:

$ sudo rm -rf /var/lib/docker
$ sudo rm -rf /var/lib/containerd

2. 使用yum安装

1. 安装依赖包

[parallels@localhost ~]$ sudo yum install -y yum-utils
上次元数据过期检查:1:09:03 前,执行于 2021年09月26日 星期日 15时05分25秒。
依赖关系解决。
====================================================================================================================================================================================================
软件包 架构 版本 仓库 大小
====================================================================================================================================================================================================
安装:
yum-utils noarch 4.0.18-4.el8 baseos 71 k

事务概要
====================================================================================================================================================================================================
安装 1 软件包

总下载:71 k
安装大小:22 k
下载软件包:
yum-utils-4.0.18-4.el8.noarch.rpm
2. 切换yum源

由于国外yum源慢,所以切换到阿里仓库。

[parallels@localhost ~]$ sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
添加仓库自:https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3. ​​批量替换download.docker.com为mirrors.aliyun.com​

[parallels@localhost ~]$  sudo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
4. 安装docker

[parallels@localhost yum.repos.d]$ sudo yum install -y docker-ce docker-ce-cli containerd.io
Docker CE Stable - x86_64 89 kB/s | 15 kB 00:00
Docker CE Test - x86_64 104 kB/s | 18 kB 00:00
依赖关系解决。

要安装特定版本的 Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装:

  1. 列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序。

[root@kubernetes-node-3 ~]# yum list docker-ce --showduplicates | sort -r
* updates: mirrors.aliyun.com
Loading mirror speeds from cached hostfile
Loaded plugins: fastestmirror, langpacks
* extras: mirrors.aliyun.com
docker-ce.x86_64 3:20.10.9-3.el7 docker-ce-stable
docker-ce.x86_64 3:20.10.8-3.el7 docker-ce-stable
...
  1. 通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1。

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

3. 使用脚本安装

在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS 系统上可以使用这套脚本安装,另外可以通过 ​​--mirror​​ 选项使用国内源进行安装:

# $ curl -fsSL test.docker.com -o get-docker.sh
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun
# $ sudo sh get-docker.sh --mirror AzureChinaCloud

执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker 的稳定(stable)版本安装在系统中。

4. 启动docker

设置开机启动:

[root@localhost yum.repos.d]# systemctl enable docker.service

启动docker:

[root@localhost yum.repos.d]# systemctl start docker

5. 创建docker组

默认情况下,​​docker​​​ 命令会使用 ​​Unix socket​​​ 与 Docker 引擎通讯。而只有 ​​root​​​ 用户和 ​​docker​​​ 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 ​​root​​​ 用户。因此,更好地做法是将需要使用 ​​docker​​​ 的用户加入 ​​docker​​ 用户组。

建立 ​​docker​​ 组:

$ sudo groupadd docker

增加docker用户:

useradd -m docker -p docker -g docker

修改密码:

passwd docker

6. 修改docker数据目录

停止docker服务

systemctl stop docker.service

查看容量大的挂载目录

[root@localhost docker]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 32G 0 32G 0% /dev
tmpfs 32G 0 32G 0% /dev/shm
tmpfs 32G 3.2G 29G 11% /run
tmpfs 32G 0 32G 0% /sys/fs/cgroup
/dev/mapper/centos-root 50G 49G 1.1G 98% /
/dev/sda1 1014M 184M 831M 19% /boot
/dev/mapper/centos-home 58G 4.1G 54G 8% /home
/dev/mapper/centos-data 900G 42G 858G 5% /data

​vim /etc/docker/daemon.json​

{
"data-root": "/data"
}

启动docker服务

systemctl start docker.service

验证是否修改成功

[root@localhost docker]# docker info
Client:
Context: default
Debug Mode: false
...
Docker Root Dir: /data
...