自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

兩個(gè) Docker 使用神技,99% 的人都不知道!

系統(tǒng) Linux
最近發(fā)現(xiàn)兩個(gè)非常好用的工具,一個(gè)是 runlike,一個(gè)是 whaler ,一起來看看吧。

 [[412519]]

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

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

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

1.找回 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í)。

2.從鏡像導(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. FROM alpine:3.12.0  
  8. WORKDIR /root/  
  9. COPY --from=builder /root/Whaler .  
  10. 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í)看一下源碼就明白了。 

責(zé)任編輯:龐桂玉 來源: 奇妙的Linux世界
相關(guān)推薦

2023-01-13 16:48:48

前端開發(fā)JavaScript

2020-07-29 09:53:09

VSCode編碼工具插件

2018-10-17 14:50:08

2021-09-24 14:20:25

開發(fā)技能工具

2022-06-19 14:38:55

Python

2022-10-31 18:38:24

MySQL數(shù)據(jù)訂單表

2022-06-23 13:13:36

GitHub開發(fā)技巧

2025-02-04 17:33:00

2025-02-18 00:05:00

2020-12-21 09:00:04

MySQL緩存SQL

2017-10-22 15:34:34

手機(jī)內(nèi)存清理內(nèi)存手機(jī)

2020-08-04 09:57:52

JS開發(fā)前端

2020-12-21 09:44:53

MySQL查詢緩存數(shù)據(jù)庫

2023-10-11 08:16:42

客戶端服務(wù)器內(nèi)容

2024-04-19 16:58:17

人工智能AI機(jī)器人

2022-12-05 15:23:33

JavaScript技巧運(yùn)算符

2015-05-14 15:59:33

DockerLinux容器管理工具

2018-07-25 17:05:25

Windows電腦數(shù)碼

2015-10-21 11:09:08

Xcode7調(diào)試神技

2021-03-01 19:13:45

YAML程序員數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)