日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Docker介绍与安装使用(一)

發(fā)布時(shí)間:2024/4/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker介绍与安装使用(一) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

什么是Docker?

docker是一個(gè)基于LXC容器技術(shù)的管理工具,提供一系列更強(qiáng)的功能,如可移植性(定義了標(biāo)準(zhǔn),可以在任意主機(jī)運(yùn)行)、自動(dòng)化構(gòu)建(dockerfile)、版本控制、鏡像管理等。

docker提供應(yīng)用程序的自動(dòng)化部署解決方案,能夠迅速創(chuàng)建一個(gè)容器,并在容器上部署和運(yùn)行應(yīng)用程序,通過(guò)配置文件(Dockerfile)可以輕松實(shí)現(xiàn)應(yīng)用程序的自動(dòng)化安裝、部署和升級(jí)

Docker優(yōu)點(diǎn)?

1.輕量級(jí)資源,容器是在進(jìn)程級(jí)別隔離,并使用宿主機(jī)的內(nèi)核,而不需要虛擬化整個(gè)操作系統(tǒng)。不需要虛擬化和系統(tǒng)調(diào)用復(fù)雜的操作。因此節(jié)省了很大的額外開(kāi)銷。不需要額外的hypervisor(虛擬化技術(shù))支持,不需要虛擬硬件,不需要額外完整的系統(tǒng)。

2.可移植性,所需要的應(yīng)用都在容器中,可以在任意一臺(tái)docker主機(jī)上運(yùn)行

3.可預(yù)測(cè)性,宿主機(jī)和容器相互不關(guān)心對(duì)方都運(yùn)行什么。只考慮所需的接口標(biāo)準(zhǔn)化。

相關(guān)組件及功能?

1.lxc,Linux Container的簡(jiǎn)寫(xiě),lxc是一種內(nèi)核虛擬化技術(shù),與宿主機(jī)共享內(nèi)核,用namespace和cgroup實(shí)現(xiàn)資源隔離。lxc是linux內(nèi)核一個(gè)特性,它允許進(jìn)程或進(jìn)程組運(yùn)行在一塊獨(dú)立的空間,并能對(duì)其控制。并實(shí)現(xiàn)容器與宿主機(jī)資源共享。

2.cgroup,lxc是cgroup的管理工具。限制進(jìn)程或進(jìn)程組使用的系統(tǒng)資源管理。提供類似文件的接口,非常方便配置。

3.namespace,cgroup是namespace的用戶空間的管理接口。并對(duì)進(jìn)程或進(jìn)程組之間隔離,如果net、mnt、pid、user等。

4.aufs(AnotherUnionFS),支持將不同目錄掛載到同一個(gè)虛擬文件系統(tǒng)。docker容器分為只讀的鏡像層與上面可寫(xiě)層,AUFS實(shí)現(xiàn)在可寫(xiě)層上進(jìn)行增量的修改(增量文件系統(tǒng))。

在docker中,只讀層及在頂部的讀寫(xiě)層的組合被稱為Union File System,UFS(聯(lián)合文件系統(tǒng)),目前支持的聯(lián)合文件系統(tǒng)種類包括 AUFS、btrfs、vfs和DeviceMapper。

5.chroot,使容器運(yùn)行在指定的目錄內(nèi)。

組件之間關(guān)系?

cgroup是在底層實(shí)現(xiàn)資源管理,lxc在cgroup上封裝了一層,docker又在lxc封裝了一層。

工作方式?

當(dāng)我們啟動(dòng)一個(gè)docker容器時(shí),docker會(huì)加載只讀鏡像,并在其上添加一個(gè)讀寫(xiě)層(將鏡像目錄復(fù)制一份到/var/lib/docker/aufs/mnt以ID為目錄下,我們可以使用chroot進(jìn)入此目錄,與容器里面的目錄一樣)。如果運(yùn)行中的容器修改現(xiàn)有的一個(gè)已經(jīng)存在的文件,那該文件將會(huì)從讀寫(xiě)層下面的只讀層復(fù)制到讀寫(xiě)層,該文件的只讀版本仍然存在,只是已經(jīng)被讀寫(xiě)層中的該文件的副本所隱藏,當(dāng)刪除docker容器,并通過(guò)該鏡像重新啟動(dòng)時(shí),之前的更改將會(huì)丟失。


博客地址:http://lizhenliang.blog.51cto.com


Docker安裝與使用:

操作系統(tǒng):Ubuntu14.04_x64

1、添加秘鑰

$ sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys?58118E89F3A912897C070ADBF76221572C52609D

2、添加docker源

$ sudo vi /etc/apt/sources.list.d/docker.list

# Ubuntu?Precise?

deb https://apt.dockerproject.org/repo ubuntu-precise main?

# Ubuntu?Trusty?

deb https://apt.dockerproject.org/repo ubuntu-trusty main?

# Ubuntu?Vivid?

deb https://apt.dockerproject.org/repo ubuntu-vivid main?

# Ubuntu?Wily?

deb https://apt.dockerproject.org/repo ubuntu-wily main

注意:通過(guò)命令lsb_release?-c查看上面對(duì)應(yīng)的版本,不要都添加上

3、更新索引

$ sudo apt-get update

4、安裝docker

$ sudo apt-get install docker-engine

5、下載Ubuntu鏡像

#默認(rèn)下載最新版

$ sudo docker?pull?ubuntu

#如果想下載14.04版本的,可以這樣指定

$ sudo docker pull ubuntu:14.04

6、在鏡像里打印hello

$ sudo docker?run?ubuntu?/bin/echo?hello

打印出hello說(shuō)明你已經(jīng)成功安裝docker并啟動(dòng)一個(gè)容器!

7、熟悉下常用命令

#查看docker環(huán)境信息

$ sudo docker version

# sudo docker -D info

#在倉(cāng)庫(kù)中搜索相關(guān)的鏡像

$?sudo?docker?search?centos

#查看已下載的鏡像

$?sudo?docker?images

#啟動(dòng)鏡像并進(jìn)入容器

$?sudo?docker?run?-itd --name=ubuntu ubuntu

run命令選項(xiàng):

-t 模擬一個(gè)終端,-i進(jìn)入這個(gè)容器,一般結(jié)合使用創(chuàng)建一個(gè)交互式容器。

-d?后臺(tái)運(yùn)行容器并打印ID,如果不加-i后面就不能附加進(jìn)入容器

--name 為容器指定名稱

run命令選項(xiàng)很多,先不過(guò)多介紹,在使用中你會(huì)慢慢了解到!

此時(shí)你已經(jīng)創(chuàng)建并進(jìn)入容器,怎么能退出呢?

# 按ctrl+d退出容器,會(huì)暫停容器,可以再啟動(dòng)(sudo docker start ID/NAME),里面數(shù)據(jù)不會(huì)丟失。

# 退出暫停容器太不符合常理啊!那么按ctrl+p+q退出docker,將不會(huì)暫停

#緊接查看運(yùn)行的容器

$?sudo?docker?ps

#這時(shí)想進(jìn)入某個(gè)容器可通過(guò)ps查看的ID進(jìn)入運(yùn)行的容器

$?sudo?docker?attach?ID/NAME

#關(guān)閉運(yùn)行的容器(start/restart)

$?sudo?docker?stop ID

#關(guān)閉所有運(yùn)行的容器

$ sudo docker kill $(sudo?docker?ps?-q) ? #-q只顯示ID

#刪除一個(gè)容器

$ sudo docker rm ID/NAME

#刪除所有容器

$ sudo docker rm?$(sudo?docker?ps?-q)

#刪除一個(gè)鏡像

$ sudo docker rmi ID

#查看Docker操作日志

$ sudo docker ps -a

#查看容器日志

$ sudo docker logs ID/NAME ?

#查看容器配置詳細(xì)信息

$ sudo?docker?inspect ID

此時(shí),會(huì)返回一個(gè)json格式信息,我們可以獲取指定的信息,比如獲取IP地址:

$ sudo?docker?inspect?-f?'{{.NetworkSettings.IPAddress}}'?ID

#列出容器內(nèi)容文件狀態(tài)變化情況

$ sudo docker diff ID

注:A - Add,D - Delet , C - Change

#查看容器資源使用情況

$ sudo docker?stats

#免交互執(zhí)行命令

$ sudo docker exec ID/NAME command


通過(guò)這篇博文,你已經(jīng)對(duì)docker初步認(rèn)識(shí),可以很輕松的來(lái)管理容器了!

后續(xù)緊接會(huì)更新docker進(jìn)階內(nèi)容,歡迎關(guān)注,謝謝支持!


總結(jié)

以上是生活随笔為你收集整理的Docker介绍与安装使用(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。