Docker 的基本組成
Client 用戶端
Docker_Host 伺服器
Registry 倉庫
鏡像(image):
docker鏡像就好比是一個模版,可以通過這個模版來建立容器服務,tomcat鏡像------->run ------->tomcat01容器(提供伺服器)
容器(container):
docker利用容器技術,可以獨立運作一個或一組應用,通過鏡像來建立!
啟動,停止,删除,基本指令!
目前可以把容器了解為一個簡單的linux系統
倉庫(repository):
倉庫就是來存放鏡像的地方!
倉庫分為 公有倉庫 和 私有倉庫
公有例如:
Docker Hub(預設是國外的)
安裝Docker
環境準備
- 需要會Linux基礎
- CentOS7
- 遠端軟體
環境檢視
系統核心 3.10以上
[[email protected] /]# uname -r
3.10.0-1160.el7.x86_64
系統版本
[[email protected] /]# cat /etc/os-release
NAME=“CentOS Linux”
VERSION=“7 (Core)”
ID=“centos”
ID_LIKE=“rhel fedora”
VERSION_ID=“7”
PRETTY_NAME=“CentOS Linux 7 (Core)”
ANSI_COLOR=“0;31”
CPE_NAME=“cpe:/o:centos:centos:7”
HOME_URL=“https://www.centos.org/”
BUG_REPORT_URL=“https://bugs.centos.org/”
CENTOS_MANTISBT_PROJECT=“CentOS-7”
CENTOS_MANTISBT_PROJECT_VERSION=“7”
REDHAT_SUPPORT_PRODUCT=“centos”
REDHAT_SUPPORT_PRODUCT_VERSION=“7”
安裝
官網幫助文檔(https://docs.docker.com/engine/install/centos/)
針對各個版本的作業系統,官網可以找到詳細的安裝教程! 上附連結為CentOS的! 其他作業系統的也可在連結中找到!
1.安裝前先解除安裝掉舊的版本:
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine -y
2.需要的安裝包
yum install -y yum-utils
3.設定鏡像的倉庫
#官方預設
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#阿裡
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#預設是從國外的,下載下傳十分慢!
這裡我們不适用官方的
使用國内的阿裡雲的會比較快
#更新yum軟體包索引
yum makecache fast
4.安裝最新的Docker
yum install docker-ce docker-ce-cli containerd.io -y
#docker-ce社群版 docker-ee企業版
yum list docker-ce --showduplicates | sort -r
#檢視docker可安裝版本
yum install -y docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
#安裝指定版本
5.啟動docker,檢視docker 版本
systemctl start docker
docker version
#可通過此指令檢視是否安裝成功!
6.測試
docker run hello-world
- 沒有尋找到鏡像!
Unable to find image ‘hello-world:latest’ locally
- 遠端拉官方library下的 hello-world
latest: Pulling from library/hello-world
- 拉取之後産生簽名資訊,代表拉取OK !~
0e03bdcc26d7: Pull complete
Digest: sha256:e7c70bb24b462baa86c102610182e3efcb12a04854e8c582838d92970a09f323
Status: Downloaded newer image for hello-world:latest
拉取後因執行run指令,屏顯 “Hello from Docker!” 說明你的docker已經安裝成功!
Hello from Docker!
This message shows that your installation appears to be working correctly.
7.檢視一下 下載下傳的 hello-world 鏡像
[[email protected] /]# docker images
解除安裝 docker
#解除安裝依賴
yum remove docker-ce docker-ce-cli containerd.io
#删除資源
rm -rf /var/lib/docker
# /var/lib/docker docker預設工作路徑
阿裡雲鏡像加速
這裡說下, 加速是免費的。注冊個阿裡賬号就可以了。
1.登入阿裡雲,找到容器鏡像服務
2.找到鏡像加速位址
3.配置使用
#建立目錄
sudo mkdir -p /etc/docker
#docker下daemon.json 給他配置一個阿裡雲的位址(https://sy60eocl.mirror.aliyuncs.com)
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://sy60eocl.mirror.aliyuncs.com"]
}
EOF
#以上配置完成後 重新加載鏡像
sudo systemctl daemon-reload
#重新開機docker
sudo systemctl restart docker
回顧流程!
Hello World是怎樣執行的!
報錯例如:
[[email protected] /]# docker run ayuuu546546416165165156
Unable to find image 'ayuuu546546416165165156:latest' locally
docker: Error response from daemon: pull access denied for ayuuu546546416165165156, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.
底層原理
docker是怎麼工作的?
docker是一個Client - Server 結構的系統,Docker的守護程序運作在主機上。通過Socket從用戶端通路!
Docker Server 接收到Docker-Client 的指令,就會執行這個指令!
Docker 為什麼比VM快?
1.Docker有着比虛拟機更少的抽象層
2.Docker利用的是主控端的核心,vm需要時Guest OS
是以,建立一個容器的時候,Docker不需要像虛拟機一樣重新加載一個作業系統的核心,避免引導! 虛拟機是加載 Guest OS,分鐘級别的。
Docker是利用主控端的作業系統,省略了這個複雜的過程! 秒級 !
理論未曾實踐!
之後的學習筆記會逐漸實踐!
最後再回過頭來看理論,我想就會很清晰了!
學習位址:
https://www.bilibili.com/video/BV1og4y1q7M4?p=5