docker容器常用命令
最近打算突破一下docker的知識(shí),買(mǎi)了一門(mén)課程,這里同步做一下筆記。
獲取鏡像
查詢鏡像
刪除鏡像
導(dǎo)入導(dǎo)出鏡像
啟動(dòng)容器
進(jìn)入容器
查詢?nèi)萜?/span>
刪除容器
容器網(wǎng)絡(luò)
容器其他操作
容器持久化存儲(chǔ)
數(shù)據(jù)卷容器
基于容器制作鏡像
優(yōu)點(diǎn):制作方便,只要進(jìn)入容器,安裝好環(huán)境,就可以制作一個(gè)新的鏡像,并部署到其他環(huán)境。
缺點(diǎn):容器內(nèi)新增的服務(wù)必須在啟動(dòng)后,再進(jìn)入容器啟動(dòng)一次服務(wù),但是可以通過(guò)啟動(dòng)時(shí)執(zhí)行指定命令來(lái)解決這個(gè)問(wèn)題
基于Dockerfile制作鏡像
以上命令就是切換到/opt目錄,創(chuàng)建一個(gè)code子目錄,安裝vim和wget
使用鏡像啟動(dòng)容器時(shí)默認(rèn)的運(yùn)行命令,如果在docker run的時(shí)候,在后面帶上自定義命令,那么這個(gè)命令就會(huì)被替換掉,導(dǎo)致容器啟動(dòng)的時(shí)候不會(huì)執(zhí)行,所以一般我們不用這個(gè)
和上面的CMD命令相似,但是不會(huì)被啟動(dòng)容器時(shí)的自定義命令替換掉,一定會(huì)執(zhí)行;還有一個(gè)用法是在docker run后面的自定義命令可以作為ENT RYPOINT的命令參數(shù)傳入
從主機(jī)拷貝文件到容器中
和copy命令類(lèi)似,拷貝文件到鏡像中,但是對(duì)于壓縮文件(含有tar的)拷貝過(guò)去會(huì)直接解壓
指定容器要對(duì)外暴露的端口
在dockerfile中聲明了VOLUME綁定目錄并不會(huì)在容器啟動(dòng)的時(shí)候幫我們自動(dòng)綁定目錄,那么VOLUME和-v有什么區(qū)別呢?假設(shè)我們?cè)赿ockerfile中聲明了
那么我們使用不同的命令啟動(dòng)時(shí)
所以如果一個(gè)鏡像制作的時(shí)候使用了VOLUME,那么每次啟動(dòng)都會(huì)在宿主機(jī)上創(chuàng)建一個(gè)數(shù)據(jù)目錄,如果這個(gè)目錄里存在的東西很多,那么時(shí)間長(zhǎng)了,我們就會(huì)發(fā)現(xiàn)宿主機(jī)上空間越來(lái)越小,即使你重啟容器也不行。所以要了解這個(gè)性質(zhì),針對(duì)性的清理docker目錄。
相當(dāng)于cd命令,區(qū)別是在dockerfile中使用了WORKDIR后,在它下面的語(yǔ)句,工作目錄都變成了WORKDIR指定的目錄
在dockerfile中設(shè)置環(huán)境變量,主要為了在執(zhí)行docker run的時(shí)候可以通過(guò)-e參數(shù)修改環(huán)境變量,這樣也可以使鏡像更加通用。例如MySQL安裝時(shí)要指定用戶名、密碼、綁定IP,如果直接在容器里面安裝,那么我們?nèi)绻薷牡脑挘仨毜卿浀饺萜髦?,進(jìn)行修改重啟。但是在dockerfile中指定了ENV變量,那么在docker run的時(shí)候就可以修改這些設(shè)置。
下面給一個(gè)簡(jiǎn)單的dockerfile例子
在當(dāng)前目錄下創(chuàng)建dockerfile文件,并使用docker build命令制作鏡像
搭建私有鏡像庫(kù)
在很多企業(yè)中,都不能肆意的訪問(wèn)外網(wǎng),那這樣是不是docker就沒(méi)法愉快的使用了呢?我們通常下載鏡像都是從docker hub官方倉(cāng)庫(kù)下載的,如果在企業(yè)內(nèi)部搭建一個(gè)私有鏡像庫(kù),那是不是就能像外網(wǎng)一樣使用docker了呢,docker官方為我們提供了非常簡(jiǎn)單的搭建私有庫(kù)的方式:
好了,通過(guò)以上命令我們的私有鏡像庫(kù)就搭建好了,是不是很簡(jiǎn)單呢?那么怎么使用呢?
vim /etc/docker/daemon.json
{
"insecure-registries": ["xx.xx.xx.xx:5000"]
}
systemctl restart docker
修改鏡像名稱,添加私有鏡像庫(kù)地址為前綴,然后push到鏡像庫(kù)
聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請(qǐng)發(fā)
送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)
需注明出處:新網(wǎng)idc知識(shí)百科