概述
Docker 是一個(gè)開(kāi)放源代碼軟件,是一個(gè)開(kāi)放平臺(tái)往踢,用于開(kāi)發(fā)應(yīng)用腾誉、交付應(yīng)用、運(yùn)行應(yīng)用。
Docker允許用戶(hù)將基礎(chǔ)設(shè)施中的應(yīng)用單獨(dú)分割出來(lái)利职,形成更小的顆粒(容器)趣效,從而提高交付軟件的速度。
Docker容器與虛擬機(jī)類(lèi)似猪贪,但二者在原理上不同英支。容器是將操作系統(tǒng)層虛擬化,虛擬機(jī)則是虛擬化硬件哮伟,因此容器更具有便攜性干花、高效地利用服務(wù)器。 容器更多的用于表示 軟件的一個(gè)標(biāo)準(zhǔn)化單元楞黄。由于容器的標(biāo)準(zhǔn)化池凄,因此它可以無(wú)視基礎(chǔ)設(shè)施的差異,部署到任何一個(gè)地方鬼廓。另外肿仑,Docker也為容器提供更強(qiáng)的業(yè)界的隔離兼容。
架構(gòu)
<img src="http://49.235.78.232:8100/images/2020/09/20/20200920203521.png" style="zoom:75%;" />
架構(gòu)圖中組件:
1碎税、Docker daemon(后臺(tái)進(jìn)程)
Docker daemon是一個(gè)運(yùn)行在宿主機(jī)(DOCKER_HOST)的后臺(tái)進(jìn)程尤慰,可通過(guò)Docker客戶(hù)端與之通信
2、Client(Docker客戶(hù)端)
Docker客戶(hù)端是Docker的用戶(hù)界面雷蹂,可以接受用戶(hù)命令和配置標(biāo)識(shí)伟端,與Docker daemon通信
3、 Images(Docker鏡像)
Docker鏡像是一個(gè)只讀模板匪煌,它包含創(chuàng)建Docker容器的說(shuō)明责蝠,和系統(tǒng)安裝光盤(pán)有點(diǎn)像,同理使用Docker鏡像運(yùn)行其中的程序
4萎庭、Container(容器)
容器是鏡像的可運(yùn)行實(shí)例
鏡像和容器的關(guān)系有點(diǎn)類(lèi)似于面向?qū)ο笾兴剑?lèi)和對(duì)象的關(guān)系
可通過(guò)Docker API或者CLI命令來(lái)啟停、移動(dòng)驳规、刪除容器
5肴敛、Registry
Docker Registry是一個(gè)集中存儲(chǔ)與分發(fā)鏡像的服務(wù)
可借助Docker Registry來(lái)避免鏡像的手動(dòng)拷貝
一個(gè)Docker Registry可包含多個(gè)Docker倉(cāng)庫(kù) ->
每個(gè)倉(cāng)庫(kù)可包含多個(gè)鏡像標(biāo)簽 ->
每個(gè)標(biāo)簽對(duì)應(yīng)一個(gè)Docker鏡像
Docker Registry可分為公有Docker Registry和私有Docker Registry
最常用的Docker Registry莫過(guò)于官方的Docker Hub,也是默認(rèn)的Docker Registry
安裝
安裝環(huán)境為:CentOS7
設(shè)置yum源
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --enable docker-ce-edge
yum-config-manager --enable docker-ce-test
配置Docker 鏡像源
mkdir /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"graph":"/home/docker",
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://reg-mirror.qiniu.com",
"https://hub-mirror.c.163.com"]
}
EOF
配置國(guó)內(nèi)加速地址吗购,可以提升下載速度
Docker中國(guó)區(qū)官方鏡像:https://registry.docker-cn.com
網(wǎng)易:http://hub-mirror.c.163.com
ustc :https://docker.mirrors.ustc.edu.cn
中國(guó)科技大學(xué):https://docker.mirrors.ustc.edu.cn
阿里:形式類(lèi)似于 https://xxxxx.mirror.aliyuncs.com
需要登錄阿里云賬號(hào) -> 容器鏡像服務(wù) -> 鏡像服務(wù) -> 復(fù)制加速器地址
安裝啟動(dòng)Docker
yum install docker-ce
# 安裝Docker
service docker start
# 啟動(dòng)Docker服務(wù)
Portainer管理Docker
介紹
- Portainer 是一款輕量級(jí)的圖形化管理工具医男,通過(guò)它我們可以輕松管理不同的 docker 環(huán)境。Portainer 部署和使用都非常的簡(jiǎn)單巩搏,它由一個(gè)可以運(yùn)行在任何 docker 引擎上的容器組成昨登。
- Portainer 功能十分全面,提供狀態(tài)顯示面板贯底、應(yīng)用模板快速部署、容器鏡像網(wǎng)絡(luò)數(shù)據(jù)卷的基本操作(包括上傳下載鏡像,創(chuàng)建容器等操作)禽捆、事件日志顯示笙什、容器控制臺(tái)操作、Swarm 集群和服務(wù)等集中管理和操作胚想、登錄用戶(hù)管理和控制等功能琐凭。基本能滿(mǎn)足中小型單位對(duì)容器管理的全部需求浊服。
安裝啟動(dòng)
docker pull portainer/portainer
#拉取鏡像
docker volume create portainer_data
#創(chuàng)建Volume统屈,保持?jǐn)?shù)據(jù)持久化
docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
#啟動(dòng)Portainer
docker命令說(shuō)明:
docker run
:新建并啟動(dòng)容器
-d
:靜默啟動(dòng)
-p 9000:9000
:指定暴露端口為9000
--name portainer
:指定容器名稱(chēng),可自定義
--restart always
:指定容器退出后的重啟策略為始終重啟
-v /var/run/docker.sock:/var/run/docker.sock
:獲取Docker套接字牙躺,
-v portainer_data:/data
:數(shù)據(jù)卷是用來(lái)持久化數(shù)據(jù)的愁憔,生命周期獨(dú)立于容器,Docker 不會(huì)在容器被刪除后自動(dòng)刪除數(shù)據(jù)卷
portainer/portainer
:指定鏡像
關(guān)于docker.sock
<img src="http://49.235.78.232:8100/images/2020/09/20/20200920203550.png" style="zoom:50%;" />
簡(jiǎn)單地說(shuō)孽拷,/var/run/docker.sock文件是Docker守護(hù)進(jìn)程(Docker daemon)默認(rèn)監(jiān)聽(tīng)的Unix域套接字(Unix domain socket)吨掌,容器中的進(jìn)程可以通過(guò)它與Docker守護(hù)進(jìn)程進(jìn)行通信。
例如:Portainer通過(guò)綁定的/var/run/docker.sock文件與Docker守護(hù)進(jìn)程通信脓恕,執(zhí)行各種管理操作膜宋。
使用Portainer可以輕松創(chuàng)建容器。實(shí)際上炼幔,HTTP請(qǐng)求是通過(guò)docker.sock發(fā)送給Docker守護(hù)進(jìn)程的秋茫。可以通過(guò)curl創(chuàng)建容器來(lái)說(shuō)明這一點(diǎn)乃秀。使用HTTP接口運(yùn)行容器需要兩個(gè)步驟学辱,先創(chuàng)建容器,然后啟動(dòng)容器环形。
注意: 綁定Docker套接字之后策泣,容器的權(quán)限會(huì)很高,可以控制Docker守護(hù)進(jìn)程抬吟。因此萨咕,這一點(diǎn)必須謹(jǐn)慎使用,只能用于足夠信任的容器火本。
使用
首次使用需要?jiǎng)?chuàng)建密碼危队,進(jìn)入主頁(yè)面后,如下圖:
<img src="http://49.235.78.232:8100/images/2020/09/20/20200920203555.png" style="zoom:50%;" />
在頁(yè)面上就可以直接進(jìn)行容器的創(chuàng)建钙畔、啟動(dòng)茫陆、停止、刪除等操作
同時(shí)擎析,也可以對(duì)Volume簿盅、NetWorks進(jìn)行新增、刪除操作