docker容器简介及安装
生活随笔
收集整理的這篇文章主要介紹了
docker容器简介及安装
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
docker容器簡(jiǎn)介及安裝
- 一、docker的前世今生
- 早期
- 過度
- 目前
- 二、什么是docker
- 三、docker核心概念
- 1、鏡像
- 2、容器
- 3、倉庫
- 四、docker容器和虛擬機(jī)的區(qū)別
- 五、docker的安裝
- 1、安裝擴(kuò)展和設(shè)置倉庫
- 2、清空緩存,并安裝docker引擎,開啟服務(wù)并設(shè)置開機(jī)自啟
- 3、安裝加速器
- 4、網(wǎng)絡(luò)優(yōu)化
- 5、可選項(xiàng):配置文件修改(生產(chǎn)經(jīng)驗(yàn))
- 6、驗(yàn)證版本信息
- 總結(jié)(面試題)
- docker有哪些優(yōu)勢(shì)?docker和KVM虛擬化的區(qū)別
- 容器狀態(tài)有哪些,分別是什么場(chǎng)景?
一、docker的前世今生
早期
- 最早的時(shí)候,容器技術(shù)在FreeBASE出現(xiàn),叫做jail,是把一個(gè)程序放在jail中單獨(dú)運(yùn)行,不管運(yùn)行是否出錯(cuò),對(duì)外面其他應(yīng)用都不會(huì)產(chǎn)生影響
- 后來,jail技術(shù)在linux中實(shí)現(xiàn),叫做 Linux vserver,主要功能為chroot、namespaces和cgroups。
- chroot: 完整的根文件系統(tǒng)(FHS)標(biāo)準(zhǔn)
- namespaces:UTS(隔離內(nèi)核和版本標(biāo)識(shí))、Mount(管理掛載點(diǎn))、IPC( 管理跨進(jìn)程通信方向)、PID(進(jìn)程隔離)、user(用戶間隔離)、network(管理網(wǎng)絡(luò)接口)
- cgroups: 資料的分配和監(jiān)控
- 通過比較復(fù)雜的代碼開發(fā)過程,調(diào)用以上三項(xiàng)技術(shù),實(shí)現(xiàn)容器的創(chuàng)建—>管理---->銷毀
過度
- LXC(LinuXContainer)的出現(xiàn)
- LXC 對(duì)于原有的常用功能進(jìn)行封裝,方便了我們做容器生命周期的管理
- 通過固有“模板”,安裝并啟動(dòng)容器。將遠(yuǎn)程的程序包下載到本地,安裝并創(chuàng)建好我們需要的容器
- 但是仍然需要制定模板來使用,大規(guī)模創(chuàng)建及復(fù)制比較麻煩
目前
- docker技術(shù)應(yīng)運(yùn)而生
- docker技術(shù)是在LXC的基礎(chǔ)上,加入了鏡像技術(shù),進(jìn)行了二次開發(fā)和封裝
二、什么是docker
- Docker是一個(gè)用于開發(fā),交付和運(yùn)行應(yīng)用程序的開放平臺(tái)。Docker使您能夠?qū)?yīng)用程序與基礎(chǔ)架構(gòu)分開,從而可以快速交付軟件。
- 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包方式封裝應(yīng)用以及依賴包到一個(gè)可移植的鏡像中,然后發(fā)布到任何流行的Linux或者windows機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口
- 沙箱(Sandbox):在計(jì)算機(jī)安全領(lǐng)域,沙箱是一種程序的隔離運(yùn)行機(jī)制
- Docker在2013年一炮而紅,直到現(xiàn)在,已經(jīng)成為容器技術(shù)的代名詞。
- Docker從一開始就以提供標(biāo)準(zhǔn)化的運(yùn)行時(shí)環(huán)境為目標(biāo),真正做到"Build,Ship and Run any APP,Angwhere",可以將同一個(gè)構(gòu)建版本用于開發(fā)、測(cè)試、預(yù)發(fā)布、生產(chǎn)等任何環(huán)境,并且做到了與底層操作系統(tǒng)的解耦。在此基礎(chǔ)上還進(jìn)一步發(fā)展出了Caas (容器即服務(wù))技術(shù)。
小結(jié):Dcoker是基于容器技術(shù)的輕量級(jí)虛擬化解決方案docker是容器引擎,把linux的cgroup、namespaces等容器底層技術(shù)進(jìn)行完美的封裝、并抽象為用戶提供創(chuàng)建和管理容器的便捷界面(命令行cli、api等)
三、docker核心概念
1、鏡像
鏡像:一組資源的集合,包含了應(yīng)用程序軟件包、應(yīng)用程序相關(guān)的依賴包、運(yùn)行應(yīng)用程序所需要的基礎(chǔ)環(huán)境(泛指操作系統(tǒng)環(huán)境)
2、容器
容器:基于鏡像的一種運(yùn)行時(shí)狀態(tài)
3、倉庫
倉庫:存放 image 鏡像,倉庫大類(公共倉庫 docker hub,私有倉庫 registry、harbor)
四、docker容器和虛擬機(jī)的區(qū)別
| 啟動(dòng)速度 | 秒級(jí) | 分鐘級(jí) |
| 計(jì)算能力損耗 | 幾乎無 | 損耗50%左右 |
| 性能 | 接近原生 | 弱于 |
| 系統(tǒng)支持量(單機(jī)) | 上千個(gè) | 幾十個(gè) |
| 操作系統(tǒng) | 主要支持Linux | 幾乎所有 |
| 隔離性 | 進(jìn)程級(jí)別,資源隔離/限制 | 系統(tǒng)級(jí)別,完全隔離 |
| 封裝程度 | 只打包項(xiàng)目代碼和依賴關(guān)系,共享宿主機(jī)內(nèi)核 | 完整的操作系統(tǒng),與宿主機(jī)隔離 |
五、docker的安裝
1、安裝擴(kuò)展和設(shè)置倉庫
sudo yum install -y yum-utils sudo yum-config-manager \--add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo2、清空緩存,并安裝docker引擎,開啟服務(wù)并設(shè)置開機(jī)自啟
yum makecache fast yum install docker-ce docker-ce-cli containerd.io systemctl start docker systemctl enable docker3、安裝加速器
阿里云官網(wǎng):https://account.aliyun.com/ 阿里云官網(wǎng)--->右上角控制臺(tái)---->搜索框輸入容器鏡像服務(wù)---->左側(cè)欄鏡像中心內(nèi)的加速器--->選擇文件系統(tǒng) 每個(gè)賬號(hào)的加速器地址都不同4、網(wǎng)絡(luò)優(yōu)化
vim /etc/sysctl.conf net.ipv4.ip_forward=1sysctl -p systemctl restart network systemctl restart docker5、可選項(xiàng):配置文件修改(生產(chǎn)經(jīng)驗(yàn))
#registry-mirrors 以上添加"graph":"/data/docker", #數(shù)據(jù)目錄"storage-driver":"overlay2", #存儲(chǔ)引擎"insecure-registries":["registry.access.redhat.com","quary.io"], #私有倉庫 #registry-mirrors 以下添加"bip":"172.184.70.1/24", #docker網(wǎng)絡(luò)"exec-opts":["native.cgroupdriver-systemd"], #啟動(dòng)時(shí)的額外參數(shù)"live-restore":true #當(dāng)docker容器引擎掛掉的時(shí)候,使用docker跑起來的容器還能繼續(xù)運(yùn)行6、驗(yàn)證版本信息
docker version總結(jié)(面試題)
docker有哪些優(yōu)勢(shì)?docker和KVM虛擬化的區(qū)別
| 啟動(dòng)速度 | 秒級(jí) | 分鐘級(jí) |
| 計(jì)算能力損耗 | 幾乎無 | 損耗50%左右 |
| 性能 | 接近原生 | 弱于 |
| 系統(tǒng)支持量(單機(jī)) | 上千個(gè) | 幾十個(gè) |
| 操作系統(tǒng) | 主要支持Linux | 幾乎所有 |
| 隔離性 | 進(jìn)程級(jí)別,資源隔離/限制 | 系統(tǒng)級(jí)別,完全隔離 |
| 封裝程度 | 只打包項(xiàng)目代碼和依賴關(guān)系,共享宿主機(jī)內(nèi)核 | 完整的操作系統(tǒng),與宿主機(jī)隔離 |
容器狀態(tài)有哪些,分別是什么場(chǎng)景?
- 容器狀態(tài)有7種:
- created(已創(chuàng)建)
- restarting(重啟中)
- up/running(運(yùn)行中)
- removing(遷移中)
- paused(暫停)
- exited(停止)
- dead(死亡)
總結(jié)
以上是生活随笔為你收集整理的docker容器简介及安装的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql数据库(五)——mysql事务
- 下一篇: gtx960显卡配8GB内存:游戏性能提