Linux的虚拟化

Docker 入门学习

Linux的准备

目前Docker是基于Ubutun开发的,因此在Ubutun下使用Docker会有更好的效果。但是笔者喜欢用Centos,因此为了学习Docker,笔者特点安装了Centos7,对于一个万年Centos6的笔者来说,7的整体真的是惊艳到我了。不说了。安装好Centos7后,先修改静态IP,毕竟,笔者是一个喜欢命令行的人。

Centos7的网络配置在etc/sysconfig/network-scripts里面,查看当前网卡:

1
ifconfig

1572312804750

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
vim ifcfg-ens33
# 修改配置,修改后的配置如下
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=eedd3229-b127-4a6e-8a81-bb16340cc8c4
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.104
PREFIX=24
GATEWAY=192.168.1.2
DNS1=114.114.114.114
IPV6_PRIVACY=no

这样的话,我们就可以使用:192.168.1.104去连接我们Linux系统了。现在呢我们可以开始安装我们的Docker了,笔者之前也安装过Docker,但是一直都没成功,这次再来尝试一下,人嘛,总是不死心。

Docker 安装

安装Docker前,先确定我们的Linux版本

1
2
3
uname -r
3.10.0-957.el7.x86_64
# 3.10 是必须的要求啊(貌似Centos7都是这个的样子)

现在看官网

官网说(等我找一会,昨天找到官网了,和今天进的不一样)

找到了,这次呢,我再次重新安装了系统,使用的是 root身份,管你是谁,都给你最高权限。我们还是按照官网的来,我们一步一步来:

1
2
3
4
5
6
7
8
9
10
11
12
# 首先,清除Linux中的 docker , 新系统没必要,但是我这人比较喜欢做重复的事,来执行一下:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 在 root 权限下是没必要用 sudo 的 ,但是官网有,你有就用
# 然后做一个清空缓存操作
yum clean all

1572315258110

笔者使用的是存储库的安装模式,因此呢,需要先安装一下存储库,在稳定下:

1
2
3
4
5
6
7
8
# 安装所需的软件包。yum-utils提供了yum-config-manager 效用,并device-mapper-persistent-data和lvm2由需要 devicemapper存储驱动程序
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
# 再来稳定下我们的存储库
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

1572315627198

1572315651241

1572315675089

1572315698302

1
2
3
yum-config-manager --enable docker-ce-nightly
yum-config-manager --enable docker-ce-test
yum-config-manager --disable docker-ce-nightly

之前总是会提醒我缺少这缺少那的,这次貌似可以的样子,当然了,笔者我的每次失败都不是在这里

现在我们列出我们所有的可用的库

在 Centos 8 中,会出现下面这个问题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
CentOS-8 - Base - mirrors.aliyun.com                                                                                                                                                 51 kB/s | 3.9 kB     00:00    
CentOS-8 - Extras - mirrors.aliyun.com 15 kB/s | 1.5 kB 00:00
CentOS-8 - AppStream - mirrors.aliyun.com 20 kB/s | 4.3 kB 00:00
Docker CE Stable - x86_64 2.3 kB/s | 3.5 kB 00:01
Docker CE Test - x86_64 25 kB/s | 63 kB 00:02
Extra Packages for Enterprise Linux Modular 8 - x86_64 10 kB/s | 8.2 kB 00:00
Extra Packages for Enterprise Linux 8 - x86_64 6.7 kB/s | 13 kB 00:01
Error:
Problem: package docker-ce-3:19.03.11-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
- cannot install the best candidate for the job
- package containerd.io-1.2.10-3.2.el7.x86_64 is excluded
- package containerd.io-1.2.13-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.13-3.2.el7.x86_64 is excluded
- package containerd.io-1.2.2-3.3.el7.x86_64 is excluded
- package containerd.io-1.2.2-3.el7.x86_64 is excluded
- package containerd.io-1.2.4-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.5-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.6-3.3.el7.x86_64 is excluded
- package containerd.io-1.2.11-3.2.el7.x86_64 is excluded
- package containerd.io-1.2.12-3.1.el7.x86_64 is excluded
- package containerd.io-1.2.6-3.2.el7.x86_64 is excluded
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

要么,我们就降低我们的 docker 的版本,要么,我们就安装不低于 1.2.2-3 版本的 containerd.io

1
yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.13-3.2.el7.x86_64.rpmy
1
yum list docker-ce --showduplicates | sort -r

1572315944215

这里会有一个验证

1572316089009

安装最新的就好了

1
yum install docker-ce-19.03.4 docker-ce-cli-19.03.4 containerd.io

1572316029713

到此呢,就算安装上了,但是好没好,测一下:

1
2
systemctl start docker
docker run hello-world

1572316169893

在查看下Docker的版本信息

1
docker -version

1572316230777