国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

初學(xué)者關(guān)于Docker的一些問題記錄

googollee / 2639人閱讀

摘要:第三種是最簡單的設(shè)置方法,設(shè)置了在容器容器時直接生效。中的是什么意思,是什么意思,后面跟個為又是什么意思表示交互,表示偽終端,是后臺運(yùn)行,是容器啟動時執(zhí)行命令在容器中打開一個進(jìn)程進(jìn)入。

項目背景

搭建一個基于springcloud的分布式博客系統(tǒng),已經(jīng)實現(xiàn)了基于eureka的配置中心和注冊中心,為了減少本地的內(nèi)存壓力,使用docker將配置中心注冊中心放到服務(wù)器上

初學(xué)者初探

dockerfile中的WORKDIR的用處

docker build -t imageName  path, 這里path指的是上下文路徑,如ADD COPY等命令都需要一個源路徑和目標(biāo)路徑,那么源路徑和目標(biāo)路徑的定位是相對于那個路徑呢? 源路徑就是相對于path,它只能訪問path下的目錄,在path外的目標(biāo)是不能被訪問到,目標(biāo)路徑相對的就是這個WORKDIR,表示當(dāng)前容器在運(yùn)行是訪問的根路徑,比如RUN java -jar target.jar的時候,這個target在容器中的某個目錄下,通過WORKDIR定位到這個目錄,就能能通過RUN 來執(zhí)行到這個target.jar,而不需要在RUN中指定額外的相對或者絕對路徑定位這個jar文件

制作一個含有jdk環(huán)境的Dockefile

制作這么一個Dockerfile也不難,指定FROM centos, 通過add將jar解壓到容器目錄里面,最后通過ENTRYPOINT 指定java -jar && tail -f > /etc/null執(zhí)行springboot的jar包并保證進(jìn)程不退出。但jdk的環(huán)境變量配置需要注意,有三種寫法,一種通過RUN SED -i "$a" /etc/profile 將jdk的環(huán)境變量寫進(jìn)profile,第二種通過RUN echo "JAVA_HOME" >> /etc/profile,第三種直接通過dockerfile提供的ENV JAVA_HOME 來設(shè)置jdk的環(huán)境變量。前面兩種都是通過在/etc/profile中寫環(huán)境變量來完成,但是指定RUN source /etc/profile是行不通的,你需要進(jìn)入容器中source /etc/profile才能讓/etc/profile的環(huán)境變量生效。第三種是最簡單的設(shè)置方法,設(shè)置了在容器容器時直接生效。

RUN命令中的&&命令連接

RUN command 一個RUN會產(chǎn)生一個中間的容器,那么一套相關(guān)的命令可以通過RUM command && command來進(jìn)行連接,換行可以指定 ,如果不指定直接換行連接command會出現(xiàn)一些語法錯誤,這樣有什么好處呢?更加直觀?命令功能分塊集中?你覺得好就對了何必教科書般的說出個之所以然來,RUM cd /usr/local && npm install這條命令如果分開寫成兩個RUN會如何? 導(dǎo)致install訪問不到/usr/local的文件,它因為是重新開始一個容器,訪問的路徑時WORKDIR指定的根目錄

CMD的ENTRYPOINT的區(qū)別

dockerfile中的一些指令都是可以通過docker run來覆蓋的,比如 -v 掛載可以覆蓋VOLUME -p 可以覆蓋EXPOSE指定的端口, -w可以覆蓋WORKDIR,-v 可以覆蓋ENV環(huán)境變量,這里的docker run imageId command 中的command可以覆蓋CMD,所以容器的啟動后執(zhí)行的命令還是寫在ENTRYPOINT比較好,避免被覆蓋掉。

docker run中的-it是什么意思,-d是什么意思, 后面跟個command為/bin/bash又是什么意思

i表示交互,t表示偽終端,-d是后臺運(yùn)行,/bin/bash是容器啟動時執(zhí)行/bin/bash命令在容器中打開一個進(jìn)程進(jìn)入/bin/bash。解釋了但是沒有實踐又怎么知道是怎么個回事。那么如果不指定-d,會使容器在前臺執(zhí)行進(jìn)程,將控制臺打印這些執(zhí)行信息,如果指定了-d那么容器進(jìn)程在后臺執(zhí)行,不會打印執(zhí)行信息,也不用想辦法退出當(dāng)前容器執(zhí)行的進(jìn)程。一般運(yùn)行docker run以后直接在控制臺打印這個容器的id信息,但是我又想進(jìn)入容器怎么辦?docker exec嗎,我執(zhí)行進(jìn)去看看不想寫這個命令,這時候可以通過docker run -it /bin/bash 執(zhí)行完就能進(jìn)入到這個容器里面查看一些信息,這應(yīng)該就是所謂的交互

dockerfile通過docker build通過docker images可以找到這個鏡像,刪除dockerfile上下文會生效嗎

刪掉上下文以后,也是可以通過docker run ,docker restart 來運(yùn)行容器,需要注意一點(diǎn),docker restart會重新執(zhí)行一遍之前運(yùn)行的docker run命令,如果這時候掛載點(diǎn)剛好是dockerfile上下文目錄,那么docker restart以后發(fā)現(xiàn)宿主機(jī)找不到掛載目錄(已經(jīng)被刪掉),就會生成一個指定的掛載目錄名(之前在dockerfile run -v指定的名字),同時容器如果執(zhí)行一個jar包剛好在掛載目錄下,這時候就會找不到j(luò)ar文件,從而報錯,想要查看docker 容器執(zhí)行的日志可以通過docker logs imageId來完成

掛載目錄的理解

掛載目錄可以在dockerfile中通過volume指定,這只能指定容器的掛載目錄,宿主機(jī)的掛載目錄自動生成,可以通過docker inspect imageId查看,也可以通過docker run -v path:path 指定,那么我在宿主機(jī)的掛載目錄中更改一些信息,它會立馬響應(yīng)到容器對應(yīng)掛載的目錄里面

dockerfile制作啟動springboot項目的鏡像,如何更新jar包

最初認(rèn)為只要掛載好宿主機(jī)的存放jar的目錄到指定的容器目錄中,通過docker restart重新執(zhí)行dockerfile中的ENTRYPOINT java -jar target.jar命令來執(zhí)行這個容器的掛載目錄更新的target.jar,這樣就能完成jar的更新,發(fā)現(xiàn)行不通每次發(fā)布新的jar都需要通過docker build重新構(gòu)建鏡像,具體還需要實際操作總結(jié)。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/27881.html

相關(guān)文章

  • 學(xué)者關(guān)于Docker一些問題記錄

    摘要:第三種是最簡單的設(shè)置方法,設(shè)置了在容器容器時直接生效。中的是什么意思,是什么意思,后面跟個為又是什么意思表示交互,表示偽終端,是后臺運(yùn)行,是容器啟動時執(zhí)行命令在容器中打開一個進(jìn)程進(jìn)入。 項目背景 搭建一個基于springcloud的分布式博客系統(tǒng),已經(jīng)實現(xiàn)了基于eureka的配置中心和注冊中心,為了減少本地的內(nèi)存壓力,使用docker將配置中心注冊中心放到服務(wù)器上 初學(xué)者初探 dock...

    Cheng_Gang 評論0 收藏0
  • Docker從入門到放棄-學(xué)者困惑

    摘要:進(jìn)入發(fā)現(xiàn)運(yùn)行鏡像的容器有可能也是一個系統(tǒng)。每次使用都會創(chuàng)建一個容器,如果出現(xiàn)已經(jīng)存在的提示,請使用去移除這個容器。使用可以獲取權(quán)限容器如何查看準(zhǔn)確說如何進(jìn)入到容器。這個就表示啟動容器后啟動保證有個進(jìn)行在運(yùn)行。 前言 這篇文章采用自問自答的方式記錄自己的接觸Docker的所想與困惑. 學(xué)習(xí)方式 菜鳥教程過一遍 -> 實戰(zhàn)總結(jié) -> Docker官網(wǎng)查找細(xì)節(jié) 基礎(chǔ)知識 Docker搜索鏡...

    yy13818512006 評論0 收藏0
  • 從零開始學(xué)習(xí) Docker

    摘要:此命令下載測試鏡像并在容器中運(yùn)行它。國內(nèi)很多云服務(wù)商都提供了加速器服務(wù),例如阿里云加速器注冊用戶并且申請加速器,會獲得如這樣的地址。獲取鏡像阿里云鏡像庫上有大量的高質(zhì)量的鏡像可以用,這里我們就說一下怎么獲取這些鏡像并運(yùn)行。 showImg(https://segmentfault.com/img/remote/1460000012924583); 這篇文章是我學(xué)習(xí) Docker 的記錄...

    lily_wang 評論0 收藏0
  • 從零構(gòu)建一個基于DockerLaravel應(yīng)用

    摘要:簡介其實在這樣的一個云計算時代早就已被人眾所周知了它改變了傳統(tǒng)物理機(jī)的虛擬化方式使得機(jī)器的資源得到了高效的利用因為運(yùn)行在中的應(yīng)用實際上就是運(yùn)行在宿主機(jī)上的所以它是不需要進(jìn)行硬件層面的虛擬化以及運(yùn)行一個完整操作系統(tǒng)來支持于是在應(yīng)用代碼的執(zhí)行效 Docker簡介 其實在這樣的一個云計算時代, Docker 早就已被人眾所周知了,它改變了傳統(tǒng)物理機(jī)的虛擬化方式,使得機(jī)器的資源得到了高效的利用...

    ixlei 評論0 收藏0
  • CI Weekly #3 | 關(guān)于微服務(wù)、Docker 實踐與 DevOps 指南

    摘要:圍繞軟件工程效率提升進(jìn)行一系列技術(shù)內(nèi)容分享,包括國內(nèi)外持續(xù)集成持續(xù)交付,持續(xù)部署自動化測試等實踐教程工具與資源,以及一些工程師文化相關(guān)的程序員。劃分了數(shù)據(jù)庫日志安全監(jiān)控配置管理云服務(wù)等個大類,個工具。 CI Weekly 圍繞『 軟件工程效率提升』 進(jìn)行一系列技術(shù)內(nèi)容分享,包括國內(nèi)外持續(xù)集成、持續(xù)交付,持續(xù)部署、自動化測試、 DevOps 等實踐教程、工具與資源,以及一些工程師文化相關(guān)...

    monw3c 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<