CentOS 安裝 docker 並簡單驗證
官方文檔的參考安裝手冊:
https://docs.docker.com/v18.09/install/linux/docker-ce/centos/
https://docs.docker.com/engine/install/centos/
一、docker 的版本說明
docker 有以下兩個版本:
社區版本(Community Edition,CE) ,即 docker CE 版本
企業版本(Enterprise Edition, EE) ,即 docker EE 版本
二、安裝前說明
爲了安裝 docker 引擎,必須要 CentOS 7 以及以上版本。默認 centos-extras 倉庫有比較老的 docker 的安裝版本,不過一般不推薦生產用這麼老的版本。推薦使用 overlay2 驅動引擎(至少用 CentOS 7.4以及之後的鏡像就行,經過測試不打補丁,好像 CentOS 7.0,CentOS7.1,CentOS 7.2,CentOS 7.3 等都是用的 devicemapper 模擬實現)。關於驅動部分,這一部分涉及到底層鏡像以及文件系統構建,會有專門的文檔講解。
我們這裏打算使用阿里雲的同步官方的 docker 鏡像倉庫後對開發者開放的 阿里雲自己的 docker-ce 的倉庫,並基於此倉庫直接使用 yum 安裝。先看一下 centos 自帶的 extra 倉庫的 docker 相關的包:
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[root@localhost ~]# yum list all docker*
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Available Packages
docker.x86_64 2:1.13.1-109.gitcccb291.el7.centos extras
docker-client.x86_64 2:1.13.1-109.gitcccb291.el7.centos extras
docker-client-latest.x86_64 1.13.1-58.git87f2fab.el7.centos extras
docker-common.x86_64 2:1.13.1-109.gitcccb291.el7.centos extras
docker-compose.noarch 1.18.0-4.el7 epel
docker-distribution.x86_64 2.6.2-2.git48294d9.el7 extras
docker-latest.x86_64 1.13.1-58.git87f2fab.el7.centos extras
docker-latest-logrotate.x86_64 1.13.1-58.git87f2fab.el7.centos extras
docker-latest-v1.10-migrator.x86_64 1.13.1-58.git87f2fab.el7.centos extras
docker-logrotate.x86_64 2:1.13.1-109.gitcccb291.el7.centos extras
docker-lvm-plugin.x86_64 2:1.13.1-109.gitcccb291.el7.centos extras
docker-novolume-plugin.x86_64 2:1.13.1-109.gitcccb291.el7.centos extras
docker-registry.x86_64 0.9.1-7.el7 extras
docker-v1.10-migrator.x86_64 2:1.13.1-109.gitcccb291.el7.centos extra
新版的包現在都叫 docker-ce 了,因爲一些歷史競爭原因。然後阿里雲的 docker 鏡像庫配置說明地址:
https://developer.aliyun.com/mirror/docker-ce
三、安裝配置
3.1、配置 docker-ce 的倉庫指向阿里雲
我們不按照阿里雲推薦的指令使用。我們直接去找到 repo 配置,下載到我們的服務器的對應目錄。
https://mirrors.aliyun.com/docker-ce/linux/centos/
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
cd /etc/yum.repos.d && wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
我們可以看一下 docker-ce.repo 裏面的 baseurl 是不是指向阿里雲,如果是就忽略。
建議把 CentOS 的 base 倉庫以及已經安裝的 epel 倉庫都指向阿里雲的。(這部分我們不介紹)
3.2、查看倉庫中 docker-ce 版本
[root@localhost ~]# yum list all docker-ce*
......
結果中顯示的:
docker-ce 版本是 3:19.03.8-3.el7
docker-ce-cli 版本是 1:19.03.8-3.el7
yum list docker-ce* --showduplicates | sort -r
查看實際有哪些版本的包。
3.3、安裝指定版本的包
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
這裏我們推薦生產大量使用的一個非最新的大版本。(往前推一個大版本,然後補丁版本的最新版本)
docker-ce 大版本: 18.09.9
docker-ce-cli 大版本的: 18.09.9
yum install docker-ce-18.09.9 docker-ce-cli-18.09.9
[root@localhost ~]# rpm -qa|grep docker-ce
docker-ce-cli-18.09.9-3.el7.x86_64
docker-ce-18.09.9-3.el7.x86_64
3.4、安裝包以及安裝主要文件
安裝主要有三個包:
docker-ce
docker-ce-cli
containerd.io
docker-ce(服務端的包):
/usr/bin/docker-init
/usr/bin/docker-proxy
/usr/bin/dockerd-ce
/usr/lib/systemd/system/docker.service
/usr/lib/systemd/system/docker.socket
docker-ce-cli(主要是客戶端組件相關的包,包括文檔):
/usr/bin/docker
然後就是一些 man 手冊。
containerd.io(比較底層的一些東西):
/usr/bin/runc
/usr/bin/containerd
/usr/lib/systemd/system/containerd.service
3.5、啓動 docker-ce 容器的服務端程序
[root@localhost ~]# systemctl start docker.service
[root@localhost ~]# systemctl status docker.service
[root@localhost ~]# systemctl enable docker.service #開機啓動
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
3.6、簡單查看
[root@localhost ~]# docker version
[root@localhost ~]# docker info
docker info 有歸類於 docker 的 system,所以可以這樣查看: docker system info
docker version 主要是用來查看版本信息。
docker version 輸出內容:
[root@localhost ~]# docker version
Client: #客戶端相關的版本信息
Version: 18.09.9
API version: 1.39
Go version: go1.11.13
Git commit: 039a7df9ba
Built: Wed Sep 4 16:51:21 2019
OS/Arch: linux/amd64
Experimental: false #是否是實驗版本
Server: Docker Engine - Community
Engine: #服務端相關的版本信息
Version: 18.09.9
API version: 1.39 (minimum version 1.12)
Go version: go1.11.13
Git commit: 039a7df
Built: Wed Sep 4 16:22:32 2019
OS/Arch: linux/amd64
Experimental: false #是否是實驗版本、
docker system info 輸出信息就有點多了,涉及的東西特別廣,我這裏簡單羅列一下,不懂的可以先忽略:
容器不同狀態的數量
鏡像數
服務端版本
底層驅動
底層文件系統
一些加載驅動和名稱空間的情況
插件(容器,網絡,日誌)
是否激活 swarm
容器實現(新版一般都是 runC)
內核版本
操作系統
系統架構,內存,cpu等
docker的根目錄(/var/lib/docker)
還有什麼鏡像加速器,是否爲實驗版本標識,License等
docker system info 的一份參考輸出:
[root@localhost ~]# docker system info
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 18.09.9
Storage Driver: overlay2
Backing Filesystem: xfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
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: 7ad184331fa3e55e52b890ea95e65ba581ae3429
runc version: dc9208a3303feef5b3839f4323d9beb36df0a9dd
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 3.10.0-1062.el7.x86_64
Operating System: CentOS Linux 7 (Core)
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.934GiB
Name: localhost.localdomain
ID: QMRY:YZZV:3G75:QNV4:D7FW:6VPT:Z5GM:2LVF:LTVC:J37D:QWRU:TVJ6
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