一起学习微服务和容器10-搭容器-Docker安装

简述

前情回顾

在前面章节中,我们准备了用于科学上网的代理服务器。那接下来我们将进一步展开来介绍容器的安装和配置。

环境准备

主机准备

准备好需要用容器的服务器,比如:Kubernetes集群中所有的服务器,Harbor的宿主机等等。例如:

Node Type CPU MEM Log Disk Docker Disk
Master 8Core 16GB 40GB 100GB
minion1 8Core 16GB 40GB 100GB
minion2 8Core 16GB 40GB 100GB
minion3 8Core 16GB 40GB 100GB
minion4 8Core 16GB 40GB 100GB
minion5 8Core 16GB 40GB 100GB
minion6 8Core 16GB 40GB 100GB

其中:

  • Log Disk:文件系统为:/var/log
  • Docker Disk: 文件系统为:/var/lib/docker。

操作系统要求

考虑到后续Docker容器的文件系统,我们将采用Docker官网推荐的Overlay2,对于此版本CentOS的版本也将有所要求。

  • CentOS版本,建议升级到7.5+ stable版本。
  • 内核建议升级到最新4.20+版本。

CentOS7 版本升级

切换到root用户,直接执行:

[root@localhost ~]#  yum update

CentOS7内核升级

请参考本人的另一篇文章,在此处就不再累述。
https://www.jianshu.com/p/3e3bc1f51332。

Docker文件系统准备

挂载磁盘到主机

  • 在云服务器New一个磁盘100GB,专门用于Docker镜像以及容器存储。
  • 挂载磁盘到宿主机。

对磁盘创建分区及格式化

登录宿主机,查看新挂载磁盘:

[root@localhost ~]# fdisk -l

Disk /dev/vda: 42.9 GB, 42949672960 bytes, 83886080 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0008e9bc

   Device Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048     2099199     1048576   83  Linux
/dev/vda2         2099200    83886079    40893440   83  Linux

Disk /dev/vdb: 100 GB, 161061273600 bytes, 314572800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xbe36259a

   Device Boot      Start         End      Blocks   Id  System
[root@localhost ~]# 

对磁盘进行分区

通过fdisk对磁盘进行分区,进入菜单后分别选择: n->p->默认->默认。
最后输入wq进行保存,如果wq保存的时候提示磁盘在busy状态,需要重启,就重启下,如果没提示,则可继续后续步骤。

[root@localhost ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default p): p 
....

对磁盘进行格式化

我们采用xfs格式对磁盘进行格式化,需要注意的是,需要对操作系统内核进行升级。

  • CentOS版本,建议升级到7.5 stable版本。
  • 内核建议升级到最新4.19版本。
    操作系统升级及内核升级,请参考本人另一篇文章:
    https://www.jianshu.com/p/3e3bc1f51332

格式化:

注意:请注意替换自己在创建分区的时候创建出来的Device Boot. 本例中的为:/dev/vdb3

[root@localhost ~]# mkfs.xfs -n ftype=1 /dev/vdb3

如果格式过程中,或者重装的过程中有提示该磁盘已在用,则可强制格式化。

将磁盘Mount到目标路径

我们将采用docker默认的路径来做目标路径:/var/lib/docker

[root@localhost ~]#  mount /dev/vdb3 /var/lib/docker
[root@localhost ~]# df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  7.9G     0  7.9G   0% /dev
tmpfs          tmpfs     7.9G     0  7.9G   0% /dev/shm
tmpfs          tmpfs     7.9G  9.2M  7.9G   1% /run
tmpfs          tmpfs     7.9G     0  7.9G   0% /sys/fs/cgroup
/dev/vda2      ext4       39G  2.8G   34G   8% /
/dev/vdb2      ext4       40G   57M   38G   1% /var/log
/dev/vdb3      xfs       100G   33M  100G   1% /var/lib/docker
/dev/vda1      ext4      976M  249M  660M  28% /boot

经过查看,我们发现/var/lib/docker 已使用xfs类型成功Mount。

添加主机启动自动挂载

[root@localhost ~]# vi /etc/fstab
......
/dev/vdb3 /var/lib/docker xfs  defaults  0  0
......

添加系统对Overlay2文件系统的支持

[root@localhost ~]#  yum install yum-plugin-ovl -y

卸载已有Docker

此步骤非必须,如果是新装服务器,请忽略。

[root@localhost ~]# yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

安装Docker

我们将采用Docker Engine的社区版本。

安装Docker Yum仓库

[root@localhost ~]# yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

安装Docker的稳定版本库。

[root@localhost ~]# yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

按照官网的介绍,如果需要Nightly版本,请自行参考官网安装相应的Yum仓库。

安装Docker

[root@localhost ~]# yum install docker-ce docker-ce-cli containerd.io

配置Docker

设置开启自启动

[root@localhost ~]# systemctl enable docker

配置代理服务器

代理服务器的配置用来下载那些需要科学上网的镜像,比如:Kubernetes的镜像。
在当前用户的根路径下创建Docker的配置文件。

# mkdir -p /etc/systemd/system/docker.service.d/
# vi /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://xxx.xxx.xxx.xxx:8118/" "NO_PROXY=localhost,127.0.0.1,xxx.xxx.xxx.xxx,hub.twinkle.net,*.docker.io"
#
# vi /etc/systemd/system/docker.service.d/https-proxy.conf
[Service]
Environment="HTTP_PROXY=http://192.168.0.127:8118/" "NO_PROXY=localhost,127.0.0.1,xxx.xxx.xxx.xxx,hub.twinkle.net,*.docker.io"

启动Docker

我们将拉起Docker。

[root@localhost ~]# systemctl start docker
[root@localhost ~]# docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 18.09.0
Storage Driver: overlay2
 Backing Filesystem: xfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: systemd
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: c4446665cb9c30056f4998ed953e6d4ff22c7c39
runc version: 4fc53a81fb7c994640722ac585fa9ca548971871
init version: fec3683
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.20.0-1.el7.elrepo.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 24
Total Memory: 62.8GiB
Name: localhost.localdomain
ID: 3ZMY:RKZY:MNOQ:USOO:AU6Q:HITD:IHIV:NHCM:XLUY:OYOJ:HTS2:62WJ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled
[root@localhost ~]# 

至此Docker已安装完毕,可以继续后续章节。

你可能感兴趣的:(一起学习微服务和容器10-搭容器-Docker安装)