您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)python中docker系統(tǒng)管理的示例分析的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來(lái)看看吧。
Docker Hub是一個(gè)倉(cāng)庫(kù)
>https://hub.docker.com/
>如果頁(yè)面打不開,那就需要×××。
倉(cāng)庫(kù)是集中存放鏡像文件的場(chǎng)所。
倉(cāng)庫(kù)為公開倉(cāng)庫(kù)(Public)和私有倉(cāng)庫(kù)(Private)兩種形式。
最大的公開倉(cāng)庫(kù)就是https://hub.docker.com/
用戶也可以在本地網(wǎng)絡(luò)搭建私有倉(cāng)庫(kù)。
用戶可以選擇性的將鏡像上傳到私有和公有倉(cāng)庫(kù)中。其他用戶使用鏡像只需要pull命令,上傳是通過push命令
注意
>下載不需要賬號(hào),上傳是需要進(jìn)行賬號(hào)注冊(cè)的
源碼:https://github.com/limingios/dockerpython.git (「docker實(shí)戰(zhàn)篇」python的docker-docker系統(tǒng)管理-基礎(chǔ)概念(27))
vagrant的使用參見
mac 安裝vgarant :https://idig8.com/2018/07/29/docker-zhongji-07/
window安裝vgarant:https://idig8.com/2018/07/29/docker-zhongji-08/
通過vagrant 安裝centos7
Vagrantfile
# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.require_version ">= 1.6.0" boxes = [ { :name => "docker-vagrant-centos", :mem => "2048", :cpu => "2" } ] Vagrant.configure(2) do |config| config.vm.box = "centos/7" boxes.each do |opts| config.vm.define opts[:name] do |config| config.vm.hostname = opts[:name] config.vm.provider "vmware_fusion" do |v| v.vmx["memsize"] = opts[:mem] v.vmx["numvcpus"] = opts[:cpu] end config.vm.provider "virtualbox" do |v| v.customize ["modifyvm", :id, "--memory", opts[:mem]] v.customize ["modifyvm", :id, "--cpus", opts[:cpu]] end config.vm.network :private_network, auto_config: true, ip: "192.168.70.100", bridge:"ens1f0", bootproto: "static", gateway: "192.168.70.1" end end config.vm.provision "shell", privileged: true, path: "./setup.sh" end
setup.sh
#/bin/sh sudo yum install -y yum upgrade yum-utils device-mapper-persistent-data wget sudo yum install -y net-tools sudo yum install -y curl policycoreutils openssh-server openssh-clients sudo systemctl enable sshd sudo systemctl start sshd sudo yum install -y postfix sudo systemctl enable postfix sudo systemctl start postfix sudo firewall-cmd --permanent --add-service=http sudo systemctl reload firewalld sudo curl -sSL https://get.docker.com/ | sh sudo curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://b81aace9.m.daocloud.io sudo systemctl restart docker sudo yum -y install epel-release sudo yum -y install python-pip sudo yum clean all sudo pip install docker-compose
vagrant安裝命令
vagrant up
mac 安裝vgarant :https://idig8.com/2018/07/29/docker-zhongji-07/
window安裝vgaranthttps://idig8.com/2018/07/29/docker-zhongji-08/
系統(tǒng)類型 | IP地址 | 節(jié)點(diǎn)角色 | CPU | Memory | Hostname |
---|---|---|---|---|---|
Centos7 | 192.168.70.100 | gitlab | 2 | 2G | docker-vagrant-centos |
(1). 虛擬機(jī)vagrant講述安裝的步驟
vagrant up
(2).機(jī)器window/mac開通遠(yuǎn)程登錄root用戶下
su - # 密碼 vagrant #設(shè)置 PasswordAuthentication yes vi /etc/ssh/sshd_config sudo systemctl restart sshd
docker 登錄
>通過網(wǎng)頁(yè)的方式登錄
虛擬機(jī)linux登錄docker官網(wǎng),輸入的是用戶名和密碼。不是在官網(wǎng)登錄的郵箱
docker login
搜索鏡像
>官網(wǎng)方式
linxu命令的方式
下載鏡像
>1.先配置加速器
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io sudo systemctl restart docker
2.下載centos鏡像
#默認(rèn)下載最后一個(gè)版本 docker pull centos docker images
3.才75MB的centos鏡像,這是為啥?。科綍r(shí)下載centos的ios都幾個(gè)G,怎么可能如此的小。如果老鐵是初學(xué)者肯定會(huì)問這類的問題。
解釋下為什么鏡像如此小
>linux操作系統(tǒng)是由內(nèi)核空間和用戶空間組成的,內(nèi)核空間就是kernel,linux剛啟動(dòng)的時(shí)候會(huì)加載這個(gè)bootfs文件系統(tǒng),之后這個(gè)bootfs會(huì)卸載掉,用戶文件系統(tǒng)就是rootfs,包含dev,bin等目錄,對(duì)于剛下載的centos這個(gè)鏡像來(lái)說,底層會(huì)使用docker的內(nèi)核,自己只需要提供用戶空間就可以了 ,對(duì)于精簡(jiǎn)的系統(tǒng)用戶空間可以很小,只需要包括最基本的命令和程序庫(kù)就可以了,我們平時(shí)安裝的centos除了最基本的還會(huì)安裝很多的軟件,服務(wù),圖形桌面等等,需要好幾個(gè)g也不足為奇了。
什么是鏡像
Docker鏡像是一個(gè)特殊的文件系統(tǒng),除了提供容器運(yùn)行時(shí)所需的程序,庫(kù),資源,配置等文件外,還包含了一些為運(yùn)行時(shí)準(zhǔn)備的一些配置參數(shù)(如匿名卷,環(huán)境變量,用戶等)。鏡像不包含任何動(dòng)態(tài)數(shù)據(jù),其內(nèi)容在構(gòu)建之后也不會(huì)被改變。docker鏡像只需要一個(gè)基礎(chǔ)的base Image,按照需求不斷的疊加就可以了。共享一份基礎(chǔ)的。一個(gè)基礎(chǔ)鏡像出現(xiàn)多個(gè)容器,如果容器內(nèi)的etc文件被修改,但是基礎(chǔ)鏡像的是不會(huì)被改變的。修改只會(huì)在單個(gè)的容器內(nèi)。 例如要安裝一個(gè)tomcat鏡像,新的鏡像是在基礎(chǔ)的linux下一層一層疊加上來(lái)的。
Docker的copy-on-write特性
所有的修改,添加,刪除,只會(huì)發(fā)生在容器層中,鏡像層都是只讀的。
什么是容器
>容器是一種輕量級(jí),可移植,自包含的軟件打包技術(shù),是一種應(yīng)用程序,可以在幾乎任何地方以相同的方式運(yùn)行。
開發(fā)人員在自己筆記本創(chuàng)建并測(cè)試好的容器,無(wú)需任何修改就能夠在生產(chǎn)系統(tǒng)的虛擬機(jī),物理放服務(wù)器或公有云主機(jī)上運(yùn)行。
為什么需要容器,以及為什么被稱為容器
集裝箱,無(wú)論你是什么貨物,鋼琴,香蕉,保時(shí)捷,他都會(huì)放置在各自的集裝箱里面了,它都會(huì)密封,只有到達(dá)目的地才會(huì)被打開,標(biāo)準(zhǔn)的集裝箱會(huì)被高效的裝卸重疊,長(zhǎng)途運(yùn)輸。docker就將集裝箱的思想運(yùn)用在了打包軟件上面。它為代碼提供了容器的標(biāo)準(zhǔn)化的運(yùn)輸系統(tǒng),docker會(huì)將任何應(yīng)用打包成為一個(gè)輕依賴,可移植,自包含的容器,這個(gè)容器幾乎可以運(yùn)行在任何的操作系統(tǒng)上,其實(shí)集裝箱和容器對(duì)應(yīng)的單詞都叫container,docker的圖標(biāo)就是一個(gè)鯨魚頂著多個(gè)集裝箱。
docker容器的優(yōu)勢(shì)
容器的優(yōu)勢(shì),對(duì)于開發(fā)人員來(lái)說,創(chuàng)建一次,可以在任何地方運(yùn)行,對(duì)于運(yùn)維人員來(lái)說,配置一次,可以運(yùn)行所有應(yīng)用。
docker服務(wù)
docker最核心的后臺(tái)進(jìn)程,它負(fù)責(zé)響應(yīng)來(lái)自Docker client的請(qǐng)求,然后將這些請(qǐng)求翻譯成系統(tǒng)調(diào)用完成容器管理操作。該進(jìn)程會(huì)在后臺(tái)啟動(dòng)一個(gè)API Server,負(fù)責(zé)接收由Docker client發(fā)送的請(qǐng)求;接收到的請(qǐng)求將通過Docker服務(wù)內(nèi)部的一個(gè)路由分發(fā)調(diào)度,再由具體的函數(shù)來(lái)執(zhí)行請(qǐng)求。
感謝各位的閱讀!關(guān)于“python中docker系統(tǒng)管理的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。