《帶你走進Docker的世界》輕松學會原理|架構|安裝|加速【與云原生的故事】
前言

一文精講一個知識點,多了你記不住,一句廢話都沒有
經典語錄:人情緒的盡頭不是臟話不是發泄,人情緒的盡頭是沉默
一、docker架構
Client: 客戶端;操作docker服務器的客戶端(命令行或者界面)
Docker_Host:Docker主機;安裝Docker服務的主機
Docker_Daemon:后臺進程;運行在Docker服務器的后臺進程
Containers:容器;在Docker服務器中的容器(一個容器一般是一個應用實例,容器間互相隔離)
K8S:CRI(Container Runtime Interface)
Images:鏡像、映像、程序包;Image是只讀模板,其中包含創建Docker容器的說明。容器是由Image運行而來,Image固定不變。
Registries:倉庫;存儲Docker Image的地方。官方遠程倉庫地址: https://hub.docker.com/search
Docker用Go編程語言編寫,并利用Linux內核的多種功能來交付其功能。 Docker使用一種稱為名稱空間的技術來提供容器的隔離工作區。 運行容器時,Docker會為該容器創建一組名稱空間。 這些名稱空間提供了一層隔離。 容器的每個方面都在單獨的名稱空間中運行,并且對其的訪問僅限于該名稱空間。
容器與虛擬機
二、Docker隔離原理
namespace 6項隔離 (資源隔離)
namespace
系統調用參數
隔離內容
cgroups資源限制 (資源限制)
cgroup提供的主要功能如下:
資源限制:限制任務使用的資源總額,并在超過這個 配額 時發出提示
優先級分配:分配CPU時間片數量及磁盤IO帶寬大小、控制任務運行的優先級
資源統計:統計系統資源使用量,如CPU使用時長、內存用量等
任務控制:對任務執行掛起、恢復等操作
cgroup資源控制系統,每種子系統獨立地控制一種資源。功能如下
三、Docker安裝
以下以centos為例;
更多其他安裝方式,詳細參照文檔: https://docs.docker.com/engine/install/centos/
1、移除舊版本
sudo yum remove docker*
2、設置docker yum源
sudo yum install -y yum-utils
使用官方源地址(比較慢)
sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
可以選擇國內的一些源地址:
阿里云
sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
清華大學源
sudo yum-config-manager \ --add-repo \ https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
3、安裝最新docker engine
sudo yum install docker-ce docker-ce-cli containerd.io
4、安裝指定版本docker engine
1、在線安裝
#找到所有可用docker版本列表 yum list docker-ce --showduplicates | sort -r # 安裝指定版本,用上面的版本號替換
2、離線安裝
https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
rpm -ivh xxx.rpm
可以下載 tar
解壓啟動即可
https://docs.docker.com/engine/install/binaries/#install-daemon-and-client-binaries-on-linux
5、啟動服務
systemctl start docker systemctl enable docker
6、鏡像加速
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
以后docker下載直接從阿里云拉取相關鏡像
/etc/docker/daemon.json 是Docker的核心配置文件。
7、?可視化界面-Portainer
1、什么是Portainer
https://documentation.portainer.io/
Portainer社區版2.0擁有超過50萬的普通用戶,是功能強大的開源工具集,可讓您輕松地在Docker, Swarm,Kubernetes和Azure ACI中構建和管理容器。
Portainer的工作原理是在易于使用的GUI后面隱藏使管理容器變得困難的復雜性。通過消除用戶使用CLI,編寫YAML或理解清單的需求,Portainer使部署應用程序和解決問題變得如此簡單,任何人都可以做到。
Portainer開發團隊在這里為您的Docker之旅提供幫助。
2、安裝
# 服務端部署 docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce # 訪問 9000 端口即可 #agent端部署 docker run -d -p 9001:9001 --name portainer_agent --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/volumes:/var/lib/docker/volumes portainer/agent
界面顯示
【與云原生的故事】有獎征文火熱進行中:https://bbs.huaweicloud.com/blogs/345260
Docker 云原生 容器
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。