日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
99%的人沒使用過它倆,Docker優(yōu)秀實(shí)踐

[[403613]]

 Docker最佳實(shí)踐

最近發(fā)現(xiàn)兩個(gè)非常好用的工具,一個(gè)是runlike,一個(gè)是whaler

創(chuàng)新互聯(lián)建站成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元大箐山做網(wǎng)站,已為上家服務(wù),為大箐山各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

  • runlike:通過容器打印出容器的啟動(dòng)命令
  • whaler:通過鏡像導(dǎo)出dockerfile

聽起來是不是想說N...B...哈哈,那就走起?

找回Docker容器運(yùn)行的命令

平時(shí)可能因?yàn)闇y試或者一些規(guī)范的操作方式導(dǎo)致啟動(dòng)一個(gè)容器,忘記了這個(gè)容器的啟動(dòng)命令是什么了,又需要找回來在別的機(jī)器上創(chuàng)建的時(shí)候,就很麻煩,可能很多人會(huì)想到通過docker inspect分析輸出的json文件中的volume、ports、Env等

 
 
 
 
  1. docker inspect $container_name 

這個(gè)命令應(yīng)該是很熟悉的,查看容器的基本信息。

雖然這樣也能找到運(yùn)行容器的命令,但是依舊還需要時(shí)間去整理,因此這里分享一個(gè)可以直接打印運(yùn)行命令的工具runlike[1],在runlike傳遞一個(gè)容器名稱,就會(huì)直接打印出該容器的運(yùn)行命令。runlike使用起來非常方便,可以直接通過pip安裝,也可以通過容器方式免安裝使用:

 
 
 
 
  1.  pip 
  2. pip install runlike 
  3. # by docker 
  4. alias runlike="docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike" 

下面還是通過上面那個(gè)容器測試一下是否可以:

這樣使用起來就方便很多了。關(guān)于runlike一些其他的選項(xiàng),可以直接通過--help學(xué)習(xí)。

從鏡像導(dǎo)出Dockerfile

平時(shí)可能會(huì)構(gòu)建很多不同的鏡像,比如維護(hù)一些基礎(chǔ)Docker鏡像、想查看一些公開倉庫的Docker鏡像是怎么構(gòu)建的,或因?yàn)殚L時(shí)間不維護(hù)找不到當(dāng)時(shí)構(gòu)建鏡像的Dockerfile,或者因?yàn)榫W(wǎng)絡(luò)無法查看時(shí),能從鏡像導(dǎo)出Dockerfile就顯得很重要,這里可以通過whaler[2]來快速的導(dǎo)出. 這里我們依舊不安裝,通過容器化的方式使用dfimage命令,便于使用,我們將該命令寫成命令別名

 
 
 
 
  1. # alias export docker image to dockerfile 
  2. alias whaler="docker run -t --rm -v /var/run/docker.sock:/var/run/docker.sock:ro pegleg/whaler" 

然后通過whaler命令輸出pegleg/whaler鏡像的dockerfile文件:

這樣就輸出pegleg/whaler這個(gè)鏡像的Dockerfile大致的內(nèi)容了,還是彩色的輸出呢?哈哈,有心了。從上圖可以看到輸出的dockerfile也與平常寫的不太一樣,可以在github上看下倉庫內(nèi)的dockerfile文件

 
 
 
 
  1. FROM golang:1.14.4 AS builder 
  2. WORKDIR $GOPATH 
  3. RUN go get -u github.com/P3GLEG/Whaler 
  4. WORKDIR $GOPATH/src/github.com/P3GLEG/Whaler 
  5. RUN export CGO_ENABLED=0 && go build . 
  6. RUN cp Whaler /root/Whaler 
  7.  
  8. FROM alpine:3.12.0 
  9. WORKDIR /root/ 
  10. COPY --from=builder /root/Whaler . 
  11. ENTRYPOINT ["./Whaler"] 

由dockerfile來看,這個(gè)whaler采用的多階段構(gòu)建,所以無法輸出--from=builder的構(gòu)建內(nèi)容,這個(gè)鍋whaler不背,我們可以換一個(gè)鏡像看看:

這個(gè)就顯示的很自然,很有熟悉的味道了。whaler支持同時(shí)分析多個(gè)鏡像等等功能,這里就不在說了,感興趣的可以自己看一下。至于whaler是怎么實(shí)現(xiàn)的,其實(shí)看一下源碼就明白了。


文章標(biāo)題:99%的人沒使用過它倆,Docker優(yōu)秀實(shí)踐
網(wǎng)頁URL:http://www.5511xx.com/article/dpjgojo.html