佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > Docker配置容器位置與小技巧總結(jié)

Docker配置容器位置與小技巧總結(jié)

熱門(mén)標(biāo)簽:檢查注冊(cè)表項(xiàng) 網(wǎng)站建設(shè) 美圖手機(jī) 智能手機(jī) 硅谷的囚徒呼叫中心 阿里云 使用U盤(pán)裝系統(tǒng) 百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式

Docker使用小技巧

1、清理全部停止的docker容器

有時(shí)候我們會(huì)有很多已經(jīng)停止的容器或者由于錯(cuò)誤強(qiáng)制退出不能用的容器,那我們就需要?jiǎng)h除了,但是我們一個(gè)一個(gè)的rm刪除很麻煩,有多少容器就要rm多少次,我們可以根據(jù)docker ps -qa 查出所有容器的id,一次性全部刪除,不用擔(dān)心會(huì)刪除正在運(yùn)行的容器,運(yùn)行中的容器rm無(wú)法刪除,這樣我們就一次性把所有停止的容器刪除了

# 只適用于Linux環(huán)境下
docker rm $(docker ps -qa)

2、查看鏡像中得環(huán)境變量

當(dāng)我們制作好一個(gè)鏡像或者獲取到一個(gè)鏡像之后如果我們想知道他的環(huán)境變量,我們首先想到的就是創(chuàng)建容器看看就知道了,其實(shí)不必,我們可以直接通過(guò)env查看

docker run nginx env

3、Windows上和Linux的區(qū)別

這兩種環(huán)境的區(qū)別主要原因還是docker的支持問(wèn)題,我們都知道docker最開(kāi)始是在Linux上發(fā)行的,依賴(lài)于Linux內(nèi)核,但是Windows上沒(méi)有,那么我們現(xiàn)在是怎么用的呢,虛擬機(jī),如果是win10以下版本基本上裝的都是VirtualBox,win10的很多都會(huì)選擇桌面版的,使用的Hyper-V ,也是虛擬機(jī)的一種。只有有了虛擬機(jī)之后docker才能在windows上使用,到這里我們應(yīng)該知道兩種不同之處了

在Linux上docker直接就在Linux系統(tǒng)上的,但是在windows上不同,windows系統(tǒng)上是虛擬機(jī),虛擬機(jī)上才是docker

Linux系統(tǒng) << docker容器

win系統(tǒng) << 虛擬機(jī) << docker容器

也就是這種原因,導(dǎo)致我們?cè)谑褂玫倪^(guò)程中有略微的不同,最常見(jiàn)的就是開(kāi)端口的時(shí)候

Linux系統(tǒng):docker容器端口直接映射到Linux系統(tǒng)

windows系統(tǒng):docker容器端口映射到虛擬機(jī),再由虛擬機(jī)映射到我們的windows

注: 把我們虛擬機(jī)中選擇網(wǎng)絡(luò)的時(shí)候選擇網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT),這樣我們就不用考慮中間虛擬機(jī)到windows這層的端口映射問(wèn)題了

4、掛載

在使用Docker的時(shí)候很多人都喜歡制作鏡像,把應(yīng)用直接打包到鏡像中,直接啟動(dòng)鏡像,一切OK,但是避免不了的是我們有時(shí)候會(huì)做一些細(xì)微的修改,特別是配置文件或者是一些項(xiàng)目中微小的修改,這種時(shí)候我們還是要重新做鏡像嗎?答案是不需要的,沒(méi)有必要

​ 我們前端使用nginx鏡像部署,但是發(fā)布之后發(fā)現(xiàn)有一點(diǎn)樣式需要微調(diào),那么我們是不是還需要重新制作一個(gè)鏡像呢,這樣我們會(huì)不會(huì)感覺(jué)很麻煩(至少我會(huì)感覺(jué)很麻煩),想想我們只需要把修改過(guò)的文件把容器中的文件覆蓋就行了,怎么樣才能直接把修改過(guò)的文件覆蓋容器中的文件,兩種辦法:第一直接把文件cp到容器中,這個(gè)過(guò)程我們還是要操作容器,怎么才能不動(dòng)容器呢?掛載 我們可以在啟動(dòng)容器的時(shí)候直接把會(huì)在后面修改的東西掛載到宿主機(jī)上,這樣我們就不用動(dòng)容器了,啟動(dòng)的時(shí)候使用-v參數(shù)掛載宿主機(jī)文件或目錄到容器

docker run -d -p 80:80 -v /c/Users/SunArmy/Desktop/html:/usr/share/nginx/html nginx

我們隨便寫(xiě)一個(gè)index.html里面寫(xiě)上welcome nginx

把這個(gè)文件覆蓋/opt/docker/html/下的index.html

再訪(fǎng)問(wèn)

重啟都不需要直接OK

為什么不選擇直接cp到容器中

​ 有這樣一種情況,如果你需要修改的是配置文件,這肯定是需要重啟的,但是在修改的時(shí)候不小心把配置文件寫(xiě)錯(cuò)了,這個(gè)時(shí)候你的容器就起不來(lái)了,想要修改容器中的配置,那也做不到了(除非重新創(chuàng)建容器),換種做法,如果我們把配置文件掛載在外面當(dāng)你啟動(dòng)不起來(lái)的時(shí)候你可以直接在宿主機(jī)上修改為正確配置重啟啟動(dòng)即可,綜上,掛載的方式比cp到容器中的方式方便且安全

1、jq工具

最后介紹一個(gè)操作json的工具,這個(gè)是在查看容器配置的時(shí)候用的,我們使用docker inspect ID查看容器配置,往往會(huì)過(guò)濾出來(lái)一些我們關(guān)注的信息,一般情況下我們會(huì)選擇docker inspect --format= 或者使用grep

但是無(wú)論使用哪一種都沒(méi)有我們最熟悉的操作json的方式來(lái)過(guò)濾用著爽

jq工具需要單獨(dú)安裝yum install jq

使用jq過(guò)濾docker inspect 獲取地址

docker inspect ac |jq -r .[0].NetworkSettings.IPAddress

. 代表管道前面的輸出,之后的[0]就是數(shù)組的第1個(gè)元素,后面的 . 就是類(lèi)似于點(diǎn)出對(duì)象中的屬性一樣,跟我們平時(shí)使用json是一樣的,jq還能方便的格式化查看json文件,對(duì)于在命令行下查看json文件簡(jiǎn)直是利器

2、修改Docker本地鏡像和容器的存儲(chǔ)位置

很多人都是只知道創(chuàng)建了容器,從來(lái)沒(méi)有關(guān)注過(guò)創(chuàng)建的容器在哪?本地鏡像在哪?

但是,當(dāng)你不得不關(guān)注的時(shí)候往往就是你的docker鏡像和容器把你的盤(pán)裝滿(mǎn)了

查看Docker鏡像和容器存儲(chǔ)的位置

docker info |greo Docker

默認(rèn)位置就是:/var/lib/docker

修改存儲(chǔ)位置的方法有兩種:

一):通過(guò)建立軟連接,把/var/lib/docker 移動(dòng)到其他地方,建立到這里的軟連接

# 停止docker
 service docker stop
# 移動(dòng)/var/lib/docker 到/usr/local/
 mv /var/lib/docker /usr/local/
# 建立軟連接
 ln -s /usr/local/docker /var/lib/docker
# 啟動(dòng)Docker
 service docker start

這個(gè)時(shí)候我們已經(jīng)修改了,但是查看位置的時(shí)候看到的位置還是/var/lib/docker

但是這是個(gè)鏈接,可以查看大小發(fā)現(xiàn)是空的,真實(shí)的存儲(chǔ)位置已經(jīng)成為了/usr/local/docker

# 查看/var/lib/docker目錄大小
 du -dh /var/lib/docker

二):修改配置文件

默認(rèn)配置文件/etc/docker/daemon.json

如果沒(méi)有的話(huà)就自己創(chuàng)建

{
 "registry-mirrors": ["http://hub-mirror.c.163.com"],
 "graph":"/opt/docker"
}

直接修改 graph 的值為你的位置然后重啟,OK

啟動(dòng)

service docker stop

停止

service docker start

重啟

service docker restart

再查看docker的存儲(chǔ)位置,已經(jīng)修改成功

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

標(biāo)簽:懷化 湘潭 賀州 煙臺(tái) 山南 湖北 通遼 黃山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Docker配置容器位置與小技巧總結(jié)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話(huà)咨詢(xún)

    • 400-1100-266
    灵璧县| 霍邱县| 阜城县| 桦川县| 尼木县| 吴堡县| 南漳县| 卫辉市| 田林县| 阳新县| 高碑店市| 荆州市| 江达县| 揭东县| 淳化县| 金沙县| 开原市| 开平市| 新巴尔虎右旗| 吉林市| 铁岭市| 崇州市| 封开县| 呼伦贝尔市| 报价| 邹城市| 五华县| 河津市| 枣阳市| 北海市| 仲巴县| 时尚| 麻江县| 永善县| 黑河市| 灵山县| 易门县| 绵阳市| 柳江县| 盐源县| 昌平区|