一. CentOS Docker 安裝前提說明
Docker支持以下的CentOS版本:
CentOS 7 (64-bit)
CentOS 6.5 (64-bit) 或更高的版本
前提條件
目前,CentOS 僅發行版本中的內核支持 Docker。
Docker 運行在 CentOS 7 上,要求系統爲64位、系統內核版本爲 3.10 以上。
Docker 運行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系統爲64位、系統內核版本爲 2.6.32-431 或者更高版本。
查看自己的內核
uname命令用於打印當前系統相關信息(內核版本號、硬件架構、主機名稱和操作系統類型等)。(CentOS6.8有,CentOS7無該命令)
二. CentOS6.8安裝Docker
-
yum install -y epel-release
Docker使用EPEL發佈,RHEL系的OS首先要確保已經持有EPEL倉庫,否則先檢查OS的版本,然後安裝相應的EPEL包。 -
yum install -y docker-io
我本機安裝的是6.10版本,報錯:No package docker-io available.執行以下命令:
yum install https://get.docker.com/rpm/1.7.1/centos-6/RPMS/x86_64/docker-engine-1.7.1-1.el6.x86_64.rpm -
安裝後的配置文件:/etc/sysconfig/docker
-
啓動Docker後臺服務:service docker start
-
docker version驗證
三. CentOS7安裝Docker
-
官網中文安裝參考手冊
https://docs.docker-cn.com/engine/installation/linux/docker-ce/centos/#prerequisites
https://docs.docker.com/install/linux/docker-ce/centos/ -
確定你是CentOS7及以上版本
cat /etc/redhat-release
-
yum安裝gcc相關
CentOS7能上外網
yum -y install gcc yum -y install gcc-c++
-
卸載舊版本
yum -y remove docker docker-common docker-selinux docker-engine
2018.3官網版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
- 安裝需要的軟件包
yum install -y yum-utils device-mapper-persistent-data lvm2
- 設置stable鏡像倉庫
# 大坑
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 報錯
1 [Errno 14] curl#35 - TCP connection reset by peer
2 [Errno 12] curl#35 - Timeout
# 推薦
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 更新yum軟件包索引
yum makecache fast
- 安裝Docker CE
yum -y install docker-ce
- 啓動Docker
systemctl start docker
- 測試
docker version
docker run hello-world
- 配置鏡像加速
mkdir -p /etc/docker
vim /etc/docker/daemon.json
#網易雲
{"registry-mirrors": ["http://hub-mirror.c.163.com"] }
#阿里雲
{
"registry-mirrors": ["https://{自已的編碼}.mirror.aliyuncs.com"]
}
systemctl daemon-reload
systemctl restart docker
- 卸載
systemctl stop docker
yum -y remove docker-ce
rm -rf /var/lib/docker
四. 永遠的HelloWorld
-
註冊一個屬於自己的阿里雲賬戶(可複用淘寶賬號)
-
獲得加速器地址連接
登陸阿里雲開發者平臺
獲取加速器地址
-
配置本機Docker運行鏡像加速器
鑑於國內網絡問題,後續拉取 Docker 鏡像十分緩慢,我們可以需要配置加速器來解決,
我使用的是阿里雲的本人自己賬號的鏡像地址(需要自己註冊有一個屬於你自己的): https://xxxx.mirror.aliyuncs.com
vim /etc/sysconfig/docker
將獲得的自己賬戶下的阿里雲加速地址配置進
other_args="–registry-mirror=https://你自己的賬號加速信息.mirror.aliyuncs.com" -
重新啓動Docker後臺服務:service docker restart
-
啓動Docker後臺容器(測試運行 hello-world)
docker run hello-world
# 輸出這段提示以後,hello world就會停止運行,容器自動終止。
五. 底層原理
- Docker是怎麼工作的
Docker是一個Client-Server結構的系統,Docker守護進程運行在主機上, 然後通過Socket連接從客戶端訪問,守護進程從客戶端接受命令並管理運行在主機上的容器。 容器,是一個運行時環境,就是我們前面說到的集裝箱。 - 爲什麼Docker比較比VM快
(1)docker有着比虛擬機更少的抽象層。由亍docker不需要Hypervisor實現硬件資源虛擬化,運行在docker容器上的程序直接使用的都是實際物理機的硬件資源。因此在CPU、內存利用率上docker將會在效率上有明顯優勢。
(2)docker利用的是宿主機的內核,而不需要Guest OS。因此,當新建一個容器時,docker不需要和虛擬機一樣重新加載一個操作系統內核。進而避免引尋、加載操作系統內核返個比較費時費資源的過程,當新建一個虛擬機時,虛擬機軟件需要加載Guest OS,這個新建過程是分鐘級別的。而docker由於直接利用宿主機的操作系統,則省略了這個過程,因此新建一個docker容器只需要幾秒鐘。