本篇內(nèi)容介紹了“Docker基本操作有哪些”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、網(wǎng)絡(luò)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、原陽(yáng)網(wǎng)站維護(hù)、網(wǎng)站推廣。
一,為什么要用 Docker?
Docker 是一個(gè)能夠把開(kāi)發(fā)應(yīng)用程序自動(dòng)部署到容器的開(kāi)源引擎。它由Docker公司的團(tuán)隊(duì)編寫,基于Apache 2.0開(kāi)源協(xié)議授權(quán)。它提供了一個(gè)簡(jiǎn)單、輕量的建模方式,使開(kāi)發(fā)生命周期更高效快速,鼓勵(lì)了面向服務(wù)的架構(gòu)設(shè)計(jì)。Docker 項(xiàng)目的目標(biāo)是實(shí)現(xiàn)輕量級(jí)的操作系統(tǒng)虛擬化解決方案。 Docker 的基礎(chǔ)是 Linux 容器(LXC)等技術(shù)。在 LXC 的基礎(chǔ)上 Docker 進(jìn)行了進(jìn)一步的封裝,讓用戶不需要去關(guān)心容器的管理,使得操作更為簡(jiǎn)便。用戶操作 Docker 的容器就像操作一個(gè)快速輕量級(jí)的虛擬機(jī)一樣簡(jiǎn)單。
Docker 的特點(diǎn):
1,更快速的交付和部署
2,更高效的虛擬化
3,更輕松的遷移和擴(kuò)展
4,更簡(jiǎn)單的管理
容器技術(shù)與傳統(tǒng)虛擬機(jī)性能對(duì)比:
Docker與虛擬機(jī)建構(gòu)對(duì)比
Docker 容器本質(zhì)上是宿主機(jī)上的一個(gè)進(jìn)程。Docker 通過(guò) namespace 實(shí)現(xiàn)了資源隔離,通過(guò) cgroups 實(shí)現(xiàn)了資源的限制,通過(guò)寫時(shí)復(fù)制機(jī)制(copy-on-write)實(shí)現(xiàn)了高效的文件操作。
Docker有五個(gè)命名空間:
進(jìn)程、網(wǎng)絡(luò)、掛載、宿主和共享內(nèi)存
為了隔離有問(wèn)題的應(yīng)用,Docker運(yùn)用Namespace將進(jìn)程隔離,為進(jìn)程或進(jìn)程組創(chuàng)建已隔離的運(yùn)行空間,為進(jìn)程提供不同的命名空間視圖。這樣,每一個(gè)隔離出來(lái)的進(jìn)程組,對(duì)外就表現(xiàn)為一個(gè)container(容器)。需要注意的是,Docker讓用戶誤以為自己占據(jù)了全部資源,但這并不是”虛擬機(jī)”。
Docker 中的三個(gè)概念:鏡像,容器,倉(cāng)庫(kù)
1、鏡像(image):Docker 鏡像就是一個(gè)只讀的模板,鏡像可以用來(lái)創(chuàng)建 Docker 容器。Docker 提供了一個(gè)很簡(jiǎn)單的機(jī)制來(lái)創(chuàng)建鏡像或者更新現(xiàn)有的鏡像,用戶甚至可以直接從其他人那里下載一個(gè)已經(jīng)做好的鏡像來(lái)直接使用。
鏡像是一種文件結(jié)構(gòu)。Dockerfile中的每條命令都會(huì)在文件系統(tǒng)中創(chuàng)建一個(gè)新的層次結(jié)構(gòu),文件系統(tǒng)在這些層次上構(gòu)建起來(lái),鏡像就構(gòu)建于這些聯(lián)合的文件系統(tǒng)之上。Docker官方網(wǎng)站專門有一個(gè)頁(yè)面來(lái)存儲(chǔ)所有可用的鏡像,網(wǎng)址是:index.docker.io。
2、容器( Container):容器是從鏡像創(chuàng)建的運(yùn)行實(shí)例。它可以被啟動(dòng)、開(kāi)始、停止、刪除。每個(gè)容器都是相互隔離的、保證安全的平臺(tái)??梢园讶萜骺醋鍪且粋€(gè)簡(jiǎn)易版的 Linux 環(huán)境,Docker 利用容器來(lái)運(yùn)行應(yīng)用。鏡像是只讀的,容器在啟動(dòng)的時(shí)候創(chuàng)建一層可寫層作為最上層。
3、倉(cāng)庫(kù):倉(cāng)庫(kù)是集中存放鏡像文件的場(chǎng)所,倉(cāng)庫(kù)注冊(cè)服務(wù)器(Registry)上往往存放著多個(gè)倉(cāng)庫(kù),每個(gè)倉(cāng)庫(kù)中又包含了多個(gè)鏡像,每個(gè)鏡像有不同的標(biāo)簽(tag)。目前,***的公開(kāi)倉(cāng)庫(kù)是 Docker Hub,存放了數(shù)量龐大的鏡像供用戶下載。
Docker倉(cāng)庫(kù)用來(lái)保存我們的images,當(dāng)我們創(chuàng)建了自己的image之后我們就可以使用push命令將它上傳到公有或者私有倉(cāng)庫(kù),這樣下次要在另外一臺(tái)機(jī)器上使用這個(gè)image時(shí)候,只需要從倉(cāng)庫(kù)上pull下來(lái)就可以了。Docker 倉(cāng)庫(kù)的概念跟 Git 類似,注冊(cè)服務(wù)器可以理解為 GitHub 這樣的托管服務(wù)。
二,安裝 Docker
前提條件:Docker運(yùn)行對(duì)內(nèi)核要求比較高,因此一般建議直接在Ubuntu這樣的平臺(tái)運(yùn)行。但作為一個(gè)容器標(biāo)準(zhǔn),Docker也是支持其他如CentOS, Mac OS X, Windows等平臺(tái)。目前Docker支持以下版本CentOS:CentOS 7(64位)CentOS 6.5(64位)及以后在運(yùn)行CentOS 6.5及以后版本時(shí),需要內(nèi)核版本>=2.6.32-431,因?yàn)檫@些內(nèi)核包含了運(yùn)行Docker的一些特定修改。
Docker默認(rèn)使用AUFS作為存儲(chǔ)驅(qū)動(dòng),但是AUFS并沒(méi)有被包括在Linux的主線內(nèi)核中。CentOS中可以使用Device Mapper作為存儲(chǔ)驅(qū)動(dòng),這是在2.6.9內(nèi)核版本引入的新功能。我們需要先確認(rèn)是否啟用該功能:
CentOS 7安裝
Docker RPM包已經(jīng)包含在CentOS-Extra倉(cāng)庫(kù)中,所以我們可以直接使用Yum安裝:
# yum install docker
CentOS 6.6安裝
需要注意的是,CentOS6.6中,已經(jīng)有一個(gè)同名docker的可執(zhí)行系統(tǒng)程序包。所以Docker RPM包命名為docker-io,我們先卸掉docker。
# yum -y remove docker
第三步 Install Docker-IO
# yum -y install docker-io
這樣完成了Docker的安裝。
# /etc/init.d/docker start #啟動(dòng)docker # docker info #查看 docker 基本信息
三, Docker 基本操作
# docker search centos #搜索容器 # docker pull centos #下載容器 # docker images #查看當(dāng)前存在的鏡像 # docker run centos /bin/echo 'hello world' #運(yùn)行一條命令后直接退出 # docker run --name mydocker -it centos /bin/bash #進(jìn)入docker容器 -t 選項(xiàng)讓Docker分配一個(gè)偽終端(pseudo-tty)并綁定到容器的標(biāo)準(zhǔn)輸入上, -i 則讓容器的標(biāo)準(zhǔn)輸入保持打開(kāi)。 –name 使用一個(gè)自定義的名字 # docker run -d --name mynginx nginx #啟動(dòng)nginx鏡像,沒(méi)有會(huì)自動(dòng)pull # docker stop bfd094233f96 #停止一個(gè)容器,根據(jù)容器 id 進(jìn)行刪除 # docker rm bfd094233f96 #刪除一個(gè)容器 # docker attach d20f3dc6cd92 #進(jìn)入一個(gè)正在運(yùn)行的容器 此命令不太好用,建議使用以下命令進(jìn)入容器: [root@localhost docker]# docker inspect --format "{{.State.Pid}}" mynginx #獲取容器pid 19769 [root@localhost docker]# nsenter --target 19769 --mount --uts --ipc --net --pid #進(jìn)入容器(推薦方法) # docker run -d -p 91:80 --name mynginx2 nginx # -p 指定端口映射,將80映射為host的91
存儲(chǔ)鏡像:
# docker save -o ubuntu_14.04.tar ubuntu:14.04
載入鏡像:
# docker load < ubuntu_14.04.tar 或者使用 # cat ubuntu.tar | docker import - test/ubuntu:v1.0
移除本地鏡像:
# docker rmi training/sinatra
清理所有未打過(guò)標(biāo)簽的本地鏡像:
# docker rmi $(docker images -q -f "dangling=true") 其中 -q 和 -f 是 quiet,–filter 的縮寫, 完整的命令其實(shí)可以寫著下面這樣,是不是更容易理解一點(diǎn)? # docker rmi $(docker images --quiet --filter "dangling=true") 注: 容器是否會(huì)長(zhǎng)久運(yùn)行,是和docker run指定的命令有關(guān),和 -d 參數(shù)無(wú)關(guān)。
要獲取容器的輸出信息,可以通過(guò) docker logs 命令。
# docker logs [container ID or NAMES]
刪除容器:
# docker rm 默認(rèn)并不會(huì)刪除運(yùn)行中的容器
有關(guān)容器和鏡像的底層信息:
# docker inspect container/image
可以查看:
容器實(shí)例的IP地址端口綁定列表
特定端口映射的搜索
收集配置的詳細(xì)信息
從容器內(nèi)復(fù)制文件到指定的路徑上:
docker cp container:path hostpath
使用Dockerfile來(lái)構(gòu)建鏡像:
docker build [options] PATH | URL –rm=true表示構(gòu)建成功后,移除所有中間容器 –no-cache=false表示在構(gòu)建過(guò)程中不使用緩存
“Docker基本操作有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
分享標(biāo)題:Docker基本操作有哪些
本文來(lái)源:http://www.rwnh.cn/article38/peoppp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、自適應(yīng)網(wǎng)站、、網(wǎng)站制作、靜態(tài)網(wǎng)站、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)