国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Docker三大核心概念(鏡像、容器和倉(cāng)庫(kù))與虛擬化

這篇具有很好參考價(jià)值的文章主要介紹了Docker三大核心概念(鏡像、容器和倉(cāng)庫(kù))與虛擬化。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

1. Docker是什么

2. Docker與虛擬化

3. Docker虛擬化的好處

4. Docker核心概念

? ?4.1.鏡像

? ?4.2.容器

? ?4.3.倉(cāng)庫(kù)

5. CentOS7 安裝docker(在線方式)

? ?5.1.內(nèi)核版本信息檢查??

? ?5.2 卸載可能存在的舊版本

??? ?5.3 安裝必要的系統(tǒng)工具

? ?5.4 添加docker-ce安裝源

? ?5.5 更新yum緩存

? ?5.6 安裝docker-CE? ?

? ?5.7 驗(yàn)證

6. 鏡像

? ?6.1 配置加速器

? ?6.2 搜索鏡像

? ?6.3 下載鏡像

? ?6.4 查看宿主機(jī)上的鏡像

? ?6.5 刪除鏡像

? ?6.6 保存鏡像

? ?6.7 推送鏡像到代碼倉(cāng)庫(kù)(以阿里云docker平臺(tái)為例)

? ?6.8 使用Dockerfile創(chuàng)建新的鏡像(注意:末尾有一個(gè)點(diǎn),表示當(dāng)前路徑)

7. Docker容器

? ?7.1 啟動(dòng)、停止、重啟容器命令

? ?7.2 查看當(dāng)前運(yùn)行的容器

? ?7.3 查看所有容器

? ?7.4 刪除容器

? ?7.5 創(chuàng)建容器(重點(diǎn))

? ?7.6 啟動(dòng)容器(重點(diǎn))

? ?7.7 進(jìn)入容器(重點(diǎn))

? ?7.8 創(chuàng)建\啟動(dòng)\進(jìn)入容器(run=create+start)

? ?7.9 退出容器

? ?7.10 宿主機(jī)和docker容器之間復(fù)制文件

? ? ? ? ? ? ? ?8. 查看Docker容器內(nèi)部信息

? ?8.1 進(jìn)入容器內(nèi)部獲取信息

? ?8.2 在宿主機(jī),執(zhí)行docker exec命令

? ?8.3 在宿主機(jī),使用docker inspect命令

補(bǔ)充


1. Docker是什么

1、Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的鏡像中,然后發(fā)布到任何流行的?Linux或Windows操作系統(tǒng)的機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。
??2、Docker是一個(gè)由GO語言寫的程序運(yùn)行的“容器”(Linux containers, LXCs),它是完整的一套容器管理系統(tǒng)?
?3、?Docker提供了一組命令,讓用戶更加方便直接地使用容器技術(shù),而無需要過多關(guān)心底層內(nèi)核技術(shù)

? ?注1:什么是容器
? ? ? ? 一個(gè)容器就相當(dāng)于一個(gè)虛擬機(jī)

? ?注2:docker用途,目前有三大類
? ? ? ? 1.提供一次性的環(huán)境。比如,本地測(cè)試他人的軟件、持續(xù)集成的時(shí)候提供單元測(cè)試和構(gòu)建的環(huán)境
? ? ? ? 2.提供彈性的云服務(wù)。因?yàn)?Docker 容器可以隨開隨關(guān),很適合動(dòng)態(tài)擴(kuò)容和縮容
? ? ? ? 3.組建微服務(wù)架構(gòu)。通過多個(gè)容器,一臺(tái)機(jī)器可以跑多個(gè)服務(wù),因此在本機(jī)就可以模擬出微服務(wù)架構(gòu)

2. Docker與虛擬化

????????傳統(tǒng)來看,虛擬化既可以通過硬件模擬來實(shí)現(xiàn),也可以通過操作系統(tǒng)軟件來實(shí)現(xiàn) 而容器技術(shù)則更為優(yōu)雅,它充分利用了操作系統(tǒng)本身已有的機(jī)制和特性,可以實(shí)現(xiàn)遠(yuǎn)超傳統(tǒng)虛擬機(jī)的輕量級(jí)虛擬化 因此,有人甚至把它稱為
? ?“新一代的虛擬化”技術(shù),并將基于容器打造的云平臺(tái)親切地稱為“容器云”毫無疑問,?
? ?Docker 正是眾多容器技術(shù)中的佼佼者,是容器技術(shù)發(fā)展過程中耀眼的一抹亮色


? ?注1:Docker三大核心概念(鏡像、容器和倉(cāng)庫(kù))與虛擬化

?

? ?注2:Docker和一個(gè)正常的虛擬機(jī)有何區(qū)別?
? ? ? ? 當(dāng)前,Docker內(nèi)部使用的是Linux容器技術(shù)(LXC),這是運(yùn)行在與它的宿主機(jī)器同樣的操作系統(tǒng)上。
? ? ? ? 這準(zhǔn)許它可以和宿主機(jī)器共享許多系統(tǒng)資源。它也會(huì)使用AuFS作為文件系統(tǒng),也為你管理網(wǎng)絡(luò)。

3. Docker虛擬化的好處


? ?好處一:應(yīng)用部署方便

? ?舉個(gè)簡(jiǎn)單的例子,假設(shè)用戶試圖基于最常見的 LAMP (Linux+Apache+MySQL+PHP )
? ?合來構(gòu)建網(wǎng)站 按照傳統(tǒng)的做法,首先需要安裝 Apache MySQL PHP 以及它們各自運(yùn)
? ?行所依賴的環(huán)境;之后分別對(duì)它們進(jìn)行配置(包括創(chuàng)建合適的用戶、配置參數(shù)等);經(jīng)過大量的操作后,還需要進(jìn)行功能測(cè)試,看是否工作正常;

如果不正常,則進(jìn)行調(diào)試追蹤,意味著更多的時(shí)間代價(jià)和不可控的風(fēng)險(xiǎn)可以想象,如果應(yīng)用數(shù)目變多,事情會(huì)變得更加難以處理

? ?更為可怕的是, 旦需要服務(wù)器遷移(例如從阿里云遷移到騰訊云),往往需要對(duì)每個(gè)
? ?應(yīng)用都進(jìn)行重新部署和調(diào)試 這些瑣碎而無趣的“體力活”,極大地降低了用戶的工作效率
? ?究其根源,是這些應(yīng)用直接運(yùn)行在底層操作系統(tǒng)上,無法保證同一份應(yīng)用在不同的環(huán)境中行為一致

? ?Docker 提供了一種更為聰明的方式,通過容器來打包應(yīng)用、解藕應(yīng)用和運(yùn)行平臺(tái)
? ?這意味著遷移的時(shí)候,只需要在新的服務(wù)器上啟動(dòng)需要的容器就可以了,無論新舊服務(wù)器
? ?是否是同一類型的平臺(tái) 這無疑將幫助我們節(jié)約大量的寶貴時(shí)間,并降低部署過程出現(xiàn)問題的風(fēng)險(xiǎn)?

? ?好處二:服務(wù)器同等配置,性能更優(yōu),利用率更高

????????讓我們假設(shè)你有一個(gè)容器鏡像(image)容量是1GB,如果你想用一個(gè)完整的虛擬機(jī)來裝載,
? ?你得需要容量的大小是1GB乘上你需要虛擬機(jī)的數(shù)量。但使用Linux容器虛擬化技術(shù)(LXC)和AuFS,你可以共享1GB容量,
? ?如果你需要1000個(gè)容器,假設(shè)他們都運(yùn)行在同樣的系統(tǒng)影像上,你仍然可以用稍微比1GB多一點(diǎn)的空間來給容器系統(tǒng)
? ?因此,借助經(jīng)過全面調(diào)優(yōu)的容器系統(tǒng),你就可以在同一硬件上擁有數(shù)量比使用Xen虛擬機(jī)或KVM虛擬機(jī)多出四到六倍的服務(wù)器應(yīng)用實(shí)例。

? ?實(shí)際案例:以springcloud微服務(wù)為例
? ? ? ? ? ? ?7個(gè)服務(wù)-7臺(tái)linux服務(wù)器
? ? ? ? ? ? ?7個(gè)服務(wù)-1臺(tái)linux服務(wù)器-docker-7個(gè)鏡像

4. Docker核心概念


? ?Docker大部分的操作都圍繞著它的三大核心概念: 鏡像、容器和倉(cāng)庫(kù)

? ?注冊(cè)服務(wù)器 -> 倉(cāng)庫(kù)(CentOS/RedHat) -> 鏡像 -> 容器(一臺(tái)虛擬機(jī))

你可以在 https://cloud.docker.com 免費(fèi)注冊(cè)一個(gè) Docker 賬號(hào)。

Docker三大核心概念(鏡像、容器和倉(cāng)庫(kù))與虛擬化
??

?

? ?4.1.鏡像


? ? ?Docker 鏡像類似于虛擬機(jī)鏡像,可以將它理解為一個(gè)只讀的模板
? ? ?例如,一個(gè)鏡像可以包含一個(gè)基本的操作系統(tǒng)環(huán)境(例如:CentOS7),可以把它稱為一個(gè) CentOS7 鏡像

注:

CentOS是免費(fèi)的、開源的、可以重新分發(fā)的開源操作系統(tǒng)?[1]??,CentOS(Community Enterprise Operating System,中文意思是社區(qū)企業(yè)操作系統(tǒng))是Linux發(fā)行版之一。

CentOS Linux發(fā)行版是一個(gè)穩(wěn)定的,可預(yù)測(cè)的,可管理的和可復(fù)現(xiàn)的平臺(tái),源于Red Hat Enterprise Linux(RHEL)依照開放源代碼(大部分是GPL開源協(xié)議?[2]??)規(guī)定釋出的源碼所編譯而成。

? ?4.2.容器


? ? ?1.Docker 容器類似于一個(gè)輕量級(jí)的沙箱, Docker利用容器來運(yùn)行和隔離應(yīng)用 ?
? ? ?2.容器是從鏡像創(chuàng)建的應(yīng)用運(yùn)行實(shí)例 它可以啟動(dòng)、開始、停止 刪除,而這些容器都是彼此相互隔離、互不可見的
? ? ?3.可以把容器看作一個(gè)簡(jiǎn)易版的 Linux 系統(tǒng)環(huán)境(包括 root 用戶權(quán)限、進(jìn)程空間、用戶空間和網(wǎng)絡(luò)空間等)
? ? ? ?以及運(yùn)行在其中的應(yīng)用程序打包而成的盒子

? ?4.3.倉(cāng)庫(kù)


? ? ?Docker 倉(cāng)庫(kù)類似于代碼倉(cāng)庫(kù),是 Docker 集中存放鏡像文件的場(chǎng)所。

docker鏡像倉(cāng)庫(kù)有:1、Docker hub共有倉(cāng)庫(kù);2、registry私有倉(cāng)庫(kù);3、harbor企業(yè)私有倉(cāng)庫(kù),它是Docker Registry的更高級(jí)封裝;4、阿里云個(gè)人私有倉(cāng)庫(kù)。
??
? ? ?注1:Docker 倉(cāng)庫(kù)和倉(cāng)庫(kù)注冊(cè)服務(wù)器( Registry)的區(qū)別
? ? ? ? ? 分際上,倉(cāng)庫(kù)注冊(cè)服務(wù)器是存放倉(cāng)庫(kù)的地方,其上往往存放著多個(gè)倉(cāng)庫(kù) 每個(gè)倉(cāng)庫(kù)集中存放某一類鏡像,
? ? ? ? ? 例如存放 CentOS 操作系統(tǒng)鏡像的倉(cāng)庫(kù),其中可能了很多不同版本的鏡像,它則被稱CentOS倉(cāng)庫(kù)

? ? ? ? ? Docker三大核心概念(鏡像、容器和倉(cāng)庫(kù))與虛擬化

?

5. CentOS7 安裝docker(在線方式)

#修改網(wǎng)絡(luò)設(shè)置
vi /etc/resolv.conf
nameserver 8.8.8.8
https://blog.csdn.net/Valiners/article/details/107871647
service network restart
#安裝yum-utils軟件包(提供yum-config-manager 實(shí)用程序)并設(shè)置穩(wěn)定的存儲(chǔ)庫(kù)。
#注:在新主機(jī)上首次安裝Docker Engine之前,需要設(shè)置Docker存儲(chǔ)庫(kù)。之后,您可以從存儲(chǔ)庫(kù)安裝和更新Docker)
sudo yum install -y yum-utils
#添加軟件yum源信息,提升國(guó)內(nèi)訪問速度
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#在更新yum源或者出現(xiàn)配置yum源之后,通常都會(huì)使用yum makecache 生成緩存
sudo yum makecache fast
#安裝docker ce (設(shè)置docker存儲(chǔ)庫(kù)并從中進(jìn)行安裝,以便安裝和升級(jí)任務(wù))
sudo yum -y install docker-ce
其它方式還有:
1.下載RPM軟件包并手動(dòng)安裝,并完全手動(dòng)管理升級(jí)。這對(duì)于在無法訪問互聯(lián)網(wǎng)的系統(tǒng)上安裝Docker等情況很有用。
2.使用自動(dòng)便利腳本來安裝Docker。
#設(shè)置docker開機(jī)自啟:
systemctl enable docker
#啟動(dòng)docker
sudo service docker start
docker info
執(zhí)行該命令之后,對(duì)于當(dāng)前的Docker服務(wù)狀況是沒有啟動(dòng)服務(wù)的,需要手動(dòng)啟動(dòng)Docker服務(wù);只有下次服務(wù)器重啟,就無需手動(dòng)啟動(dòng)Docker服務(wù)了
[參考]https://docs.docker.com/install/linux/linux-postinstall/#configure-docker-to-start-on-boot
#檢查docker版本
使用 docker version 命令
#運(yùn)行docker官方的hello world示例image來驗(yàn)證docker是否安裝成功
docker run hello-world

注:上面的命令含義:下載官方提供的用于測(cè)試使用的hello-world鏡像并將其運(yùn)行到容器中,來檢驗(yàn)Docker服務(wù)是否正常安裝并運(yùn)行。
執(zhí)行上面的命令之后,Docker會(huì)自動(dòng)下載hello-world鏡像并自動(dòng)運(yùn)行到容器中,當(dāng)命令行中出現(xiàn)“Hello from Docker!”的字樣,說明已經(jīng)成功運(yùn)行了hello-world鏡像,一切就OK了!

完整圖文示例可參考:http://config.net.cn/server/microservice/c295646a-b68a-48b6-a0a3-a3c829e6a64d-p1.html
? ?
? ?注:Docker支持運(yùn)行CentOS版本:CentOS 7.X

? ?5.1.內(nèi)核版本信息檢查

??$ uname -r

? ?5.2 卸載可能存在的舊版本

? ?$ yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine

? ?注:舊版本的docker叫做docker或者docker-engine,如果有安裝,先卸載其以及其依賴,新版本的docker叫做docker-ce

? ?docker-ce(社區(qū)版,免費(fèi))
? ?docker-ee(專業(yè)版,收費(fèi))

?? ? ?5.3 安裝必要的系統(tǒng)工具

?$ yum install -y yum-utils device-mapper-persistent-data lvm2
? ?
? ?注:安裝依賴軟件(yum-utils提供yum-config-manager包,用來管理yum配置文件;lv2和device-mapper-persistent-data為dockerdevicemapper存儲(chǔ)設(shè)備的必須依賴)

? ?5.4 添加docker-ce安裝源

? ?$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

? ?默認(rèn)開啟的是stable穩(wěn)定版?zhèn)}庫(kù),如果想要安裝test測(cè)試版或者是邊緣版本可使用如下命令開啟相關(guān)模式,關(guān)閉的話只需要將--enable參數(shù)換成--disable(可選)

? ?$ yum-config-manager --enable docker-ce-edge
? ?$ yum-config-manager --enable docker-ce-test

? ?5.5 更新yum緩存

? ?$ yum makecache fast

? ?5.6 安裝docker-CE ? ? ? ?$ yum -y install docker-ce

? ?注:
? ?1)默認(rèn)安裝的是最新版本的穩(wěn)定版
? ?2)查看版本列表請(qǐng)使用如下命令:
? ?

? ?$ yum list docker-ce --showduplicates | sort -r

? ?3)如果要安裝特定版本的docker-CE請(qǐng)使用如下命令格式:
??
? ?$ yum install docker-ce-<VERSION STRING>
? ?

? ?5.7 驗(yàn)證

?????5.7.1 查看docker服務(wù)是否啟動(dòng)

? ? ?$ systemctl status docker ? //查看運(yùn)行狀態(tài)

? ? ?5.7.2 啟停服務(wù)

? ? ?$ systemctl start docker ? ?//啟動(dòng)
? ? ?$ systemctl stop docker ? ? //停止
? ? ?$ systemclt restart docker ?//重啟

? ? ?5.7.3 運(yùn)行第一個(gè)容器(經(jīng)典的hello world)

? ? ?$ docker run hello-world

? ? ?輸入以上命令后,窗口有輸出,表示docker安裝成功?

??
? ? ?注:查看docker的版本,第二個(gè)命令是詳細(xì)查看
? ? ? ? ?docker --version 或 docker info

6. 鏡像


? ?Docker 運(yùn)行容器前需要本地存在對(duì)應(yīng)的鏡像, 如果鏡像不存在, Docker 會(huì)嘗試先從默認(rèn)鏡像倉(cāng)庫(kù)下載
? (默認(rèn)使用 Docker Hub 公共注冊(cè)服務(wù)器中的倉(cāng)庫(kù)), 用戶也可以通過配置,使用自定義的鏡像倉(cāng)庫(kù)

? ?鏡像相關(guān)操作:

? ?6.1 配置加速器

國(guó)內(nèi)從Docker Hub下載鏡像速度很慢,我們可以配置阿里云專屬加速器來解決
? ? ?
? ? ?6.1.1 瀏覽器訪問并登陸阿里云(淘寶或支付寶帳號(hào)登陸也可以)
? ? ? ?https://www.aliyun.com/
? ?
? ? ?6.1.2 登陸后,進(jìn)入阿里云“控制臺(tái)”,搜索“容器鏡像服務(wù)”,然后點(diǎn)擊菜單:“鏡像中心”-->“鏡像加速器”

Docker三大核心概念(鏡像、容器和倉(cāng)庫(kù))與虛擬化
? ? ? ?最后,將容器右邊的“加速器地址”復(fù)制下來即可
? ? ? https://eq84exsu.mirror.aliyuncs.com(這里是我的加速器地址)

? ? ?6.1.3 設(shè)置容器鏡像服務(wù)的密碼(可選)
? ? ? ?容器鏡像服務(wù)(Container Registry)提供多地域鏡像托管能力,穩(wěn)定的國(guó)內(nèi)外鏡像構(gòu)建服務(wù),便捷的鏡像授權(quán)功能,
? ? ? ?方便用戶進(jìn)行鏡像全生命周期管理。在開通流程中,您需要設(shè)置獨(dú)立于賬號(hào)密碼的Registry登錄密碼,便于鏡像的上傳、下載。

? ? ? ?注1:此步驟為可選,如果需要使用阿里云來管理你的鏡像 ,此步驟必須設(shè)置

? ? ?6.1.4 修改docker相關(guān)配置
? ? ? ?
? ? ? ?$ mkdir -p /etc/docker
? ? ? ?添加下面內(nèi)容(地址替換成上面的加速器地址):
? ? ? ?$ tee /etc/docker/daemon.json <<-'EOF'
? ? ? ?{
? ? ? ? ? ?"registry-mirrors": ["我的阿里云專屬加速器地址"]
? ? ? ?}
? ? ? ?EOF


? ? ? ?注:在這里可以先將registry-mirrors換成自己的阿里云專屬加速器地址后,在復(fù)制到工具里面去執(zhí)行(方便)

? ? ?6.1.5 重新加載daemon
? ? ? ?$ systemctl daemon-reload

? ? ?6.1.6 重啟docker
? ? ? ?$ systemctl restart docker?

? ?6.2 搜索鏡像

? $ docker search 鏡像名稱
? ? ??例如:docker search mysql

? ?6.3 下載鏡像

????????$ docker pull 鏡像名

? ? ?例如, 獲取一個(gè) centos 系統(tǒng)的基礎(chǔ)鏡像可以使用如下的命令
? ? ?## 未指定版本一般會(huì)使用latest(最新的)版本
? ? ?$ docker pull centos
? ? ?## 或者直接指定版本
? ? ?$ docker pull centos:版本號(hào)

? ?6.4 查看宿主機(jī)上的鏡像

? ? ?$ docker images

? ? ?注1:查看image位置
? ? ? ? ?

 ## /var/lib/docker為docker默認(rèn)安裝目錄
? ? ? ? ? cd /var/lib/docker/containers?
? ? ? ? ? ls

? ?6.5 刪除鏡像

? ? ?$ docker rmi 鏡像ID/標(biāo)簽
? ? ?
? ? ?例如:
? ? ?$ docker rmi 2ca708c1c9cc
? ? ?$ docker rmi centos:latest 或 docker rmi centos:版本號(hào)

? ? ?注1:如果提示鏡像被使用,需要先停止某個(gè)ID的容器,那么要先刪除容器再刪除鏡像?;蛘邚?qiáng)制刪除鏡像
? ? ? ? ? $ docker rmi -f centos:版本號(hào)?
? ? ? ? ? -f, -force: 強(qiáng)制刪除鏡像, 即使有容器依賴它

? ? ? ? ? 注意, 通常并不推薦使用-f參數(shù)來強(qiáng)制刪除一個(gè)存在容器依賴的鏡像。 正確的做法是,
? ? ? ? ? 先刪除依賴該鏡像的所有容器, 再來刪除鏡像

? ?6.6 保存鏡像

? ? ?$ docker commit -m="description about images" --author="author" {container_id} ?{repository/images_name:tag}

? ?6.7 推送鏡像到代碼倉(cāng)庫(kù)(以阿里云docker平臺(tái)為例)

? ? ?$ docker login --username=your_username registry.cn-beijing.aliyuncs.com
? ? ?$ docker tag [ImageId] registry.cn-beijing.aliyuncs.com/[命名空間]/[倉(cāng)庫(kù)名稱]:[鏡像版本號(hào)]
? ? ?$ docker push registry.cn-beijing.aliyuncs.com/[命名空間]/[倉(cāng)庫(kù)名稱]:[鏡像版本號(hào)]

? ?6.8 使用Dockerfile創(chuàng)建新的鏡像(注意:末尾有一個(gè)點(diǎn),表示當(dāng)前路徑)

? ? ?$ docker build -t "repository/images_name:tag" . ?

7. Docker容器


? ?容器是Docker的另一個(gè)核心概念。簡(jiǎn)單來說,容器是鏡像的一個(gè)運(yùn)行實(shí)例。所不同的是,
? ?鏡像是靜態(tài)的只讀文件,而容器帶有運(yùn)行時(shí)需要的可寫文件層,同時(shí),容器中的應(yīng)用進(jìn)程處于運(yùn)行狀態(tài)

? ?如何理解:類->實(shí)例,鏡像->容器

? ?常用操作

? ?7.1 啟動(dòng)、停止、重啟容器命令

? ? ?$ docker start 容器ID或name
? ? ?$ docker stop 容器ID或name
? ? ?$ docker restart 容器ID或name?

? ?7.2 查看當(dāng)前運(yùn)行的容器

? ???$ docker ps

? ?7.3 查看所有容器

? ? ?$ docker ps -a

? ?7.4 刪除容器

? ? ?$ docker rm 容器ID/容器NAME

? ? ?注1:主要支持的選項(xiàng)包括
? ? ? ? ? -f, --force=false 是否強(qiáng)行終止并刪除一個(gè)運(yùn)行中的容器
? ? ? ? ? -1, --link=false :刪除容器的連接 ,但保留容器;
? ? ? ? ? -v, --volumes=false :刪除容器掛載的數(shù)據(jù)卷
? ? ?注2:刪除容器,還可以參考附錄三,可根據(jù)條件刪除

? ?7.5 創(chuàng)建容器(重點(diǎn))

? ? ?$ docker create -it centos:latest?
? ? ?$ docker create -it --name tomcat01 centos:latest

? ? ?注1:命令說明
? ? ? ? ? create:關(guān)鍵字
? ? ? ? ? centos:latest:即鏡像名字:版本(或鏡像ID),將使用指定鏡像創(chuàng)建容器。另外,Docker會(huì)檢查本地是否存在指定的鏡像,
? ? ? ? ? ? ? ? ? ? ? ? ?不存在就從公有倉(cāng)庫(kù)下載
? ? ? ? ? -it:是兩個(gè)參數(shù),-i:interactive容器具有交互功能,-t:容器將提供偽終端
? ? ? ? ? --name:指定生成的容器的名字,允許空,如果不指定會(huì)自動(dòng)生成

? ? ?注2:此時(shí),通過如下命令,可以查看到剛剛創(chuàng)建的容器
? ? ? ? ? $ docker ps - a
? ? ?注3:create命令新建的容器處于停止?fàn)顟B(tài),可以使用start命令來啟動(dòng)它
? ? ? ? ? $ docker start 容器ID
? ? ?注4:docker容器狀態(tài)可參考“images/docker容器狀態(tài)轉(zhuǎn)換圖.png”(重點(diǎn)~~~重點(diǎn)~~~重點(diǎn)~~~)

? ?7.6 啟動(dòng)容器(重點(diǎn))

? ? ?$ docker start 容器ID/name
? ? ?
? ? ?注2:docker ps 查看已啟動(dòng)容器,注意:此時(shí)容器狀態(tài)為UP

? ?7.7 進(jìn)入容器(重點(diǎn))

? ? ?$ docker exec -it 容器ID/容器NAME /bin/bash
? ? ?## 簡(jiǎn)寫
? ? ?$ docker exec -it 容器ID/容器NAME bash

??
? ? ?注1:只有在容器啟動(dòng)的時(shí)候即UP狀態(tài)才能進(jìn)入容器終端

? ?7.8 創(chuàng)建\啟動(dòng)\進(jìn)入容器(run=create+start)


? ? ?
? ? ?## 新建->啟動(dòng)->進(jìn)入容器
? ? ?$ docker run -it centos:latest /bin/bash

? ? ?## 指定了端口號(hào)
? ? ?$ docker run -it -p 7001:8001 centos:latest /bin/bash?

? ? ?## 使用 -P 標(biāo)記時(shí),Docker 會(huì)隨機(jī)映射一個(gè) 49000~49900 的端口 ? ??
? ? ?$ docker run -it -P --name tomcat03 centos:latest /bin/bash

? ? ?## 此命令沒有進(jìn)入容器,可以之后再進(jìn)入

? ? ?更多的時(shí)候,需要讓 Docker 容器在后臺(tái)以守護(hù)態(tài)( Daemonized )形式運(yùn)行 此時(shí),可以通過添加-d參數(shù)來實(shí)現(xiàn):
? ? ?$ docker run -it -d --name webapp centos:latest?
? ? ?$ docker exec -it webapp /bin/bash ?

? ? ?參數(shù)說明:
? ? ?-p:端口映射,格式為:主機(jī)(宿主)端口:容器端口
? ? ?-P: 注意是大寫P,使用 -P 標(biāo)記時(shí),Docker 會(huì)隨機(jī)映射一個(gè) 49000~49900 的端口
? ? ?-d:后臺(tái)運(yùn)行模式
? ? ?--name:容器的名字

? ?7.9 退出容器

? ? ?退出時(shí)如果想繼續(xù)運(yùn)行容器:按順序按【ctrl+p】,【ctrl+q】
? ? ?如果不想繼續(xù)運(yùn)行:按【ctrl+d】或輸入exit

? ?7.10 宿主機(jī)和docker容器之間復(fù)制文件

? ? ?$ docker cp 宿主機(jī)絕對(duì)路徑 ?容器id:路徑

? ? ? ? ? ? ? ? 8. 查看Docker容器內(nèi)部信息

? ?8.1 進(jìn)入容器內(nèi)部獲取信息

docker exec -it 容器ID/容器NAME /bin/bash
? ? ?如果此時(shí)已進(jìn)入容器內(nèi)部,可分別執(zhí)行hostname、ip addr、env這三個(gè)命令可以獲取相關(guān)信息

? ?8.2 在宿主機(jī),執(zhí)行docker exec命令


? ? ?獲取容器的hostname:docker exec 容器ID/容器NAME hostname
? ? ?獲取容器ip地址:docker exec 容器ID/容器NAME ip addr
? ? ?獲取容器環(huán)境變量:docker exec 容器ID/容器NAME env

? ?8.3 在宿主機(jī),使用docker inspect命令


? ? ?推薦使用docker inspect來獲取信息,這個(gè)命令會(huì)返回一個(gè)json字符串,里面以key-value的格式準(zhǔn)備了該容器相關(guān)的信息,
? ? ?內(nèi)容十分豐富,可以一次性取得全部?jī)?nèi)容,也可以返回指定key對(duì)應(yīng)的信息
? ? ?docker inspect 容器ID/容器NAME

? ? ?如果我們只對(duì)其中的一些感興趣,例如hostname、ip地址、環(huán)境變量,該如何查看呢
? ? ?查看數(shù)據(jù)所在節(jié)點(diǎn),根據(jù)節(jié)點(diǎn)位置編寫命令,例如:
? ? ?hostname位于Config.Hostname這個(gè)節(jié)點(diǎn)位置,所以執(zhí)行命令docker inspect -f {{.Config.Hostname}} tomcat001即可獲取到hostname ?

補(bǔ)充


附錄一:英文
Registry: 登錄;域名注冊(cè)局;注冊(cè)局;注冊(cè)表項(xiàng);注冊(cè)機(jī)構(gòu)
pull:拉


附錄二:如何卸載原先安裝的 docker

1.移除docker:
? $ yum remove docker-ce

2.刪除Docker安裝目錄
? $ rm -rf /var/lib/docker

3.驗(yàn)證是否刪除成功
? docker info?

??
? bash: /usr/bin/docker: No such file or directory

? 我們可以看到已經(jīng)無法找到 docker 安裝目錄,證明 卸載成功 ?


附錄三:關(guān)于刪除容器

方法一:

#顯示所有的容器,過濾出Exited狀態(tài)的容器,取出這些容器的ID,
$ sudo docker ps -a|grep Exited|awk '{print $1}'
#查詢所有的容器,過濾出Exited狀態(tài)的容器,列出容器ID,刪除這些容器
$ sudo docker rm `docker ps -a|grep Exited|awk '{print $1}'`


方法二:?

#刪除所有未運(yùn)行的容器(已經(jīng)運(yùn)行的刪除不了,未運(yùn)行的就一起被刪除了)
$ sudo docker rm $(sudo docker ps -a -q)

方法三:

#根據(jù)容器的狀態(tài),刪除Exited狀態(tài)的容器
$ sudo docker rm $(sudo docker ps -qf status=exited)

方法四:
?

#Docker 1.13版本以后,可以使用 docker containers prune 命令,刪除孤立的容器。
$ sudo docker container prune ?(推薦)

附錄四:docker常用命令(不斷補(bǔ)充中)
1.docker查看容器的cpu占用率
? docker stats文章來源地址http://www.zghlxwxcb.cn/news/detail-415793.html

到了這里,關(guān)于Docker三大核心概念(鏡像、容器和倉(cāng)庫(kù))與虛擬化的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Docker從認(rèn)識(shí)到實(shí)踐再到底層原理(二-1)|容器技術(shù)發(fā)展史+虛擬化容器概念和簡(jiǎn)介

    Docker從認(rèn)識(shí)到實(shí)踐再到底層原理(二-1)|容器技術(shù)發(fā)展史+虛擬化容器概念和簡(jiǎn)介

    那么這里博主先安利一些干貨滿滿的專欄了! 首先是博主的高質(zhì)量博客的匯總,這個(gè)專欄里面的博客,都是博主最最用心寫的一部分,干貨滿滿,希望對(duì)大家有幫助。 高質(zhì)量博客匯總 然后就是博主最近最花時(shí)間的一個(gè)專欄《Docker從認(rèn)識(shí)到實(shí)踐再到底層原理》希望大家多多關(guān)

    2024年02月09日
    瀏覽(45)
  • 【Docker晉升記】No.1--- Docker工具核心組件構(gòu)成(鏡像、容器、倉(cāng)庫(kù))及性能屬性

    【Docker晉升記】No.1--- Docker工具核心組件構(gòu)成(鏡像、容器、倉(cāng)庫(kù))及性能屬性

    ??個(gè)人主頁:@小沈YO. ??小編介紹:歡迎來到我的亂七八糟小星球?? ??本章內(nèi)容:Docker工具核心組件構(gòu)成(鏡像、容器、倉(cāng)庫(kù))及性能屬性 記得 評(píng)論?? +點(diǎn)贊?? +收藏?? +關(guān)注??哦~ 提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 Docker 是一個(gè)開放源代碼的容器化平

    2024年02月14日
    瀏覽(19)
  • 虛擬化,容器化,云原生,大數(shù)據(jù)概念

    虛擬化,容器化,云原生,大數(shù)據(jù)概念

    虛擬化,是指通過虛擬化技術(shù)將 一臺(tái)計(jì)算機(jī)虛擬為多臺(tái)邏輯計(jì)算機(jī) 。在一臺(tái)計(jì)算機(jī)上同時(shí)運(yùn)行多個(gè)邏輯計(jì)算機(jī),每個(gè)邏輯計(jì)算機(jī)可運(yùn)行不同的操作系統(tǒng),并且應(yīng)用程序都可以在 相互獨(dú)立的空間內(nèi)運(yùn)行而互不影響 ,從而顯著 提高計(jì)算機(jī)的工作效率 。 虛擬化使用軟件的方法重

    2024年01月23日
    瀏覽(20)
  • Docker - 基本概念、與虛擬機(jī)的區(qū)別、架構(gòu)、鏡像操作、容器操作、數(shù)據(jù)卷掛載

    Docker - 基本概念、與虛擬機(jī)的區(qū)別、架構(gòu)、鏡像操作、容器操作、數(shù)據(jù)卷掛載

    目錄 一、對(duì) Docker? 的理解 1、Docker 基本概念 2、Docker 與 虛擬機(jī)的區(qū)別 3、何為鏡像和容器? 4、Docker 主要架構(gòu) 二、Docker 基本操作 1、Docker 鏡像操作 2、案例(鏡像):去 DockerHub 搜索并拉取一個(gè) Nginx 鏡像,打包后刪除鏡像,重新加載 .tar 文件 3、Docker 容器操作 1.docker run(啟

    2024年04月13日
    瀏覽(25)
  • 【Docker】Docker比虛擬機(jī)快的原因、ubuntu容器、鏡像的分層概念和私有庫(kù)的詳細(xì)講解

    【Docker】Docker比虛擬機(jī)快的原因、ubuntu容器、鏡像的分層概念和私有庫(kù)的詳細(xì)講解

    ??歡迎來到本文?? ??個(gè)人簡(jiǎn)介:陳童學(xué)哦,目前學(xué)習(xí)C/C++、算法、Python、Java等方向,一個(gè)正在慢慢前行的普通人。 ??系列專欄:陳童學(xué)的日記 ??其他專欄:C++STL,感興趣的小伙伴可以看看。 ??希望各位→點(diǎn)贊?? + 收藏?? + 留言?? ? ??萬物從心起,心動(dòng)則萬物動(dòng)??

    2024年02月14日
    瀏覽(22)
  • 【云計(jì)算】云計(jì)算八股與云開發(fā)核心技術(shù)(虛擬化、分布式、容器化)

    【云計(jì)算】云計(jì)算八股與云開發(fā)核心技術(shù)(虛擬化、分布式、容器化)

    【云計(jì)算】云計(jì)算八股與云開發(fā)核心技術(shù)(虛擬化、分布式、容器化) 1、云計(jì)算的架構(gòu)(基礎(chǔ)設(shè)施,平臺(tái),軟件) 國(guó)內(nèi)做公有云的主要有:騰訊云,阿里云,華為云(對(duì)外銷售) 做垂直私有云的有:米哈游,字節(jié)火山,等等 云計(jì)算的三種服務(wù)模式(企業(yè)賣的東西) IaaS:

    2024年04月23日
    瀏覽(21)
  • Docker虛擬化概念

    Docker虛擬化概念

    1、虛擬化技術(shù)的概念 虛擬化技術(shù)主要是將物理資源轉(zhuǎn)變?yōu)檫壿嬌峡梢怨芾淼馁Y源; 用以打破物理資源結(jié)構(gòu)之間的壁壘; 讓計(jì)算的原件運(yùn)行在虛擬的基礎(chǔ)之上;而不是直接運(yùn)行在硬件設(shè)備資源上; 說白了就是硬件資源轉(zhuǎn)變成虛擬資源; 虛擬化技術(shù)的底層是要進(jìn)行虛擬的硬件

    2024年02月05日
    瀏覽(20)
  • 虛擬化容器化與docker

    虛擬化容器化與docker

    物理機(jī) : 實(shí)際的服務(wù)器或者計(jì)算機(jī)。相對(duì)于虛擬機(jī)而言的對(duì)實(shí)體計(jì)算機(jī)的稱呼。物理機(jī)提供給虛擬機(jī)以硬件環(huán)境,有時(shí)也稱為“寄主”或“宿主”。 虛擬化 :是指通過虛擬化技術(shù)將一臺(tái)計(jì)算機(jī)虛擬為多臺(tái)邏輯計(jì)算機(jī)。在一臺(tái)計(jì)算機(jī)上同時(shí)運(yùn)行多個(gè)邏輯計(jì)算機(jī),每個(gè)邏輯計(jì)算

    2024年02月16日
    瀏覽(27)
  • 【Docker】容器化和虛擬化基礎(chǔ)

    【Docker】容器化和虛擬化基礎(chǔ)

    1979 年 貝爾實(shí)驗(yàn)室發(fā)明 chroot chroot的設(shè)計(jì)原理是:把一個(gè)進(jìn)程的文件系統(tǒng)隔離起來。 ? chroot 系統(tǒng)調(diào)用可以將進(jìn)程及其子進(jìn)程的根目錄更改為文件系統(tǒng)中的新位置。隔離以后,該進(jìn)程無法訪問到外面的文件,因此這個(gè)被隔離出來的新環(huán)境像監(jiān)獄一樣,被命名為 Chroot Jail (監(jiān)獄

    2024年02月10日
    瀏覽(17)
  • Docker容器與虛擬化技術(shù):Docker-Compose

    Docker容器與虛擬化技術(shù):Docker-Compose

    目錄 一、理論 1.Docker-Compose 二、實(shí)驗(yàn) 1.?Docker Compose 安裝部署 2.Docker?Compose撰寫nginx 鏡像 3.Docker?Compose撰寫tomcat 鏡像 三、問題 1.Docker Compose 和 Dockerfile 的區(qū)別 四、總結(jié) (1)使用場(chǎng)景 使用一個(gè)Dockerfile模板文件可以定義一個(gè)單獨(dú)的應(yīng)用容器,如果需要定義多個(gè)容器就需要服務(wù)

    2024年02月12日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包