目標
搭建部署起Docker(GFS1-3),爲後續其它組件搭建部署提供集成支撐
環境背景
阿里雲CentOS 7.6 64位 * 3
docker簡介
docker是一個開源的應用容器引擎,開發者可以打包自己的應用到容器裏面,然後遷移到其他機器的docker應用中,可以實現快速部署。如果出現的故障,可以通過鏡像,快速恢復服務。
docker是利用Linux內核虛擬機化技術(LXC),提供輕量級的虛擬化,以便隔離進程和資源。LXC不是硬件的虛擬化,而是Linux內核的級別的虛擬機化,相對於傳統的虛擬機,節省了很多硬件資源。
NameSpace
LXC是利用內核namespace技術,進行進程隔離。其中pid, net, ipc, mnt, uts 等namespace將container的進程, 網絡, 消息, 文件系統和hostname 隔離開。
Control Group
LXC利用的宿主機共享的資源,雖然用namespace進行隔離,但是資源使用沒有收到限制,這裏就需要用到Control Group技術,對資源使用進行限制,設定優先級,資源控制等。
核心術語
術語 | 說明 |
---|---|
host | 宿主機 |
image | 鏡像 |
container | 容器 ,即image的運行實例 |
registry | 倉庫 |
daemon | 守護程序 |
client | 客戶端 |
docker安裝步驟
1、安裝依賴
docker依賴於系統的一些必要的工具,可以提前安裝。
yum install -y yum-utils
2、添加軟件源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3、正式安裝docker-ce
yum install docker-ce
4、docker的daemon.json配置
在/etc/docker/目錄裏新增daemon.json配置文件,內容如下
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "10"
},
"bip": "169.254.123.1/24",
"oom-score-adjust": -1000,
"registry-mirrors": ["https://z6pvoojk.mirror.aliyuncs.com"],
"insecure-registries": ["http://39.xx.117.xx:8082","http://39.xx.117.xx:8083","http://172.xx.209.xx:8083", "http://172.xx.209.xx:8082"],
"storage-driver": "overlay2",
"storage-opts":["overlay2.override_kernel_check=true"],
"live-restore": true
}
修改docker的默認存儲路徑,也可以用以下方法
由於數據盤掛載data目錄,所以我的實際部署需要修改。
創建目錄
cd /data
mkdir docker
修改docker的配置
vi /usr/lib/systemd/system/docker.service
在 ExecStart= 的最後面添加 –graph /data/docker 如下圖
添加好後保存退出即可。
PS: 如果已經啓動了docker,則需要在修改配置前,停止docker,修改好後重新加載守護程序,並重新啓動docker,步驟如下:
#停止docker
systemctl stop docker
#修改配置,添加 -graph /data/docker
vi /usr/lib/systemd/system/docker.service
#如果原來有數據及鏡像等,可以拷貝過去
cp -R /var/lib/docker/* /data/docker/
#重新加載守護程
systemctl daemon-reload
#重新啓動docker
systemctl start docker
5、啓動服務
通過systemctl啓動服務
systemctl start docker
6、查看安裝版本
docker -v
7、校驗
docker run hello-world