CloudDockerKubernetes

image.png
image.png

https://segmentfault.com/a/1190000002609286
刪除所有未運行 Docker 容器
docker rm $(docker ps -a -q)
刪除所有 Docker 鏡像
刪除所有未打 tag 的鏡像

docker rmi $(docker images -q | awk '/^<none>/ { print $3 }')
刪除所有鏡像

docker rmi $(docker images -q)
根據(jù)格式刪除所有鏡像

docker rm $(docker ps -qf status=exited)
移除所有的容器和鏡像(大掃除)
用一行命令大掃除:

docker kill $(docker ps -q) ; docker rm $(docker ps -a -q) ; docker rmi $(docker images -q -a)
注:shell 中的 $() 和 `` 類似仓坞,會先執(zhí)行這里面的內(nèi)容,上面的腳本會出現(xiàn)如下 docker kill "pids" ; docker kill 在 docker 中用于停止容器,docker rm 刪除容器竞膳, docker rmi 刪除鏡像
當(dāng)沒有運行的容器或者是根本沒有容器的時候脱拼,這只會提示一個警告信息萎馅。當(dāng)你想嘗試的時候拼窥,這就是個非常好的單行命令裆泳。如果你僅僅想刪除所有的容器叹洲,你可以運行如下命令:

docker kill $(docker ps -q) ; docker rm $(docker ps -a -q)
退出時刪除容器
如果你僅僅想在一個容器中快速的運行一個命令,然后退出晾虑,并且不用擔(dān)心容器狀態(tài)疹味,把 --rm 參數(shù)加入 run 命令后面,這將結(jié)束很多你保存了的容器仅叫,并且清理它們。

示例:docker run --rm -i -t busybox /bin/bash
不在 Shell 上運行命令
如果你使用需要Shell 的擴展項的 docker run 命令處理某些事情糙捺,比如 docker run --rm busybox ls '/var/log/', 這個命令將失敗诫咱。這個失敗的原因我花了工夫才弄明白。這個陷阱在這里:你原來沒有 Shell 洪灯, 而 ``` 是 Shell 的擴展項坎缭,因此你需要一個能使用的 Shell 。正確方法為:

docker run --rm busybox sh -c 'ls /var/log/*'
Boot2Docker 和 LapTops 處理 DNS 問題的方法
由于這個原因签钩, Boot2Docker 會占用 DNS 服務(wù)器很長一段時間掏呼。當(dāng)你在嘗試創(chuàng)建鏡像的時候,可能會得到離譜的錯誤铅檩。如果你在 Ubuntu 或者 CentOS 上看到下面的提示:

cannot lookup archive.ubuntu.com
聰明的做法是停止憎夷,然后啟動 boot2docker 。

boot2docker-cli down && boot2docker-cli up
這樣問題就解決了
Volumes 解決 docker logs
和 docker copy
問題
如果你想在一個容器中監(jiān)控另一個容器中的日志文件和文件的使用昧旨,你可以看看 volumes ,例如拾给,檢查 tomcat 是否啟動:
tomcat_id=$(docker run -d -v /var/log/tomcat6 wouterd/tomcat6)# Give Tomcat some time to wake up...sleep 5while ! docker run --rm --volumes-from ${tomcat_id} busybox /bin/sh -c "grep -i -q 'INFO: Server startup in' /var/log/tomcat6/catalina*.log" ; do echo -n "." sleep 5done

你還可以在一個 Dockerfile
中指定 volumes ,這個在我前面的博客文章中結(jié)合 Docker 連載了。\

Docker Inspect 結(jié)合 Go Templates 的好處
命令 docker inspect
允許使用 Go Templates 來格式化inspect 命令的輸出信息如果你擅長這個兔沃,你能獲取很多 docker 容器命令行的腳本輸出信息蒋得。這是一個獲取正在運行的容器 IP 的示例:
container_ip=$(docker inspect --format '{{.NetworkSettings.IPAddress}}' ${container_id})

這里有一個笨的技巧,用于得到匹配所有暴露(exposed)的端口 host:port ,并且把他們輸入一個 java properties 文件:
sut_ip=${BOOT_2_DOCKER_HOST_IP}template='{{ range $key, $value := .NetworkSettings.Ports }}{{ $key }}='"${BOOT_2_DOCKER_HOST_IP}:"'{{ (index $value 0).HostPort }} {{ end }}'tomcat_host_port=$(docker inspect --format="${template}" ${container_id})for line in ${tomcat_host_port} ; do echo "${line}" >> ${work_dir}/docker_container_hosts.propertiesdone

Docker基礎(chǔ)命令
查看docker版本信息
$ docker --version

查看docker安裝信息
$ docker info

查看本機Docker中存在哪些鏡像
$ docker images

檢索images
$ docker search images

下行images
$ docker pull images

顯示一個鏡像的歷史操作
$ docker history images

列出一個容器里面被改變的文件或者目錄
$ docker diff container

列出當(dāng)前所有正在運行的容器
$ docker ps

列出所有的容器
$ docker ps -a

列出最近一次啟動的容器
$ docker ps -f

查看容器的相關(guān)信息
$ docker inspect $CONTAINER_ID

顯示容器IP地址和端口號乒疏,如果輸出是空的說明沒有配置IP地址(不同的Docker容器可以通過此IP地址互相訪問)
$ docker inspect --format='{{.NetworkSettings.IPAddress}}' $CONTAINER_ID

通過容器生成新的鏡像
$ docker commit -m "Added ssh from centos" -a "xiaoming" 4a4de4cf223d1 xiaoming/centos:v1

參數(shù):
-m參數(shù)用來來指定提交的說明信息额衙;
-a可以指定用戶信息的;
4a4de4cf223d1代表的時容器的id怕吴;
birdben/ubuntu:v1指定目標(biāo)鏡像的用戶名窍侧、倉庫名和 tag 信息。

構(gòu)建一個容器
$ docker build -t="centos:v1" .

參數(shù):
-t為構(gòu)建的鏡像制定一個標(biāo)簽转绷,便于記憶/索引等
. 指定Dockerfile文件在當(dāng)前目錄下疏之,也可以替換為一個具體的 Dockerfile 的路徑。

在docker中運行centos鏡像
$ docker run <相關(guān)參數(shù)> <鏡像 ID> <初始命令>

守護(hù)模式啟動
$ docker run -it centos:v1

指定端口號啟動
$ docker run -p 80:80 centos:v1

指定配置啟動
$ sudo docker run -d -p 10.211.55.4:9999:22 birdben/ubuntu:v1 '/usr/sbin/sshd' -D

參數(shù):
-d:表示以“守護(hù)模式”執(zhí)行暇咆,日志不會出現(xiàn)在輸出終端上。
-i:表示以“交互模式”運行容器丙曙,-i 則讓容器的標(biāo)準(zhǔn)輸入保持打開
-t:表示容器啟動后會進(jìn)入其命令行爸业,-t 選項讓Docker分配一個偽終端(pseudo-tty)并綁定到容器的標(biāo)準(zhǔn)輸入上
-v:表示需要將本地哪個目錄掛載到容器中,格式:-v <宿主機目錄>:<容器目錄>亏镰,-v 標(biāo)記來創(chuàng)建一個數(shù)據(jù)卷并掛載到容器里扯旷。在一次 run 中多次使用可以掛載多個數(shù)據(jù)卷。
-p:表示宿主機與容器的端口映射索抓,此時將容器內(nèi)部的 22 端口映射為宿主機的 9999 端口钧忽,這樣就向外界暴露了 9999 端口毯炮,可通過 Docker 網(wǎng)橋來訪問容器內(nèi)部的 22 端口了。
注意:這里使用的是宿主機的 IP 地址:10.211.55.4耸黑,與對外暴露的端口號 9999桃煎,它映射容器內(nèi)部的端口號 22。ssh外部需要訪問:ssh root@10.211.55.4 -p 9999
不一定要使用“鏡像 ID”大刊,也可以使用“倉庫名:標(biāo)簽名”

start 啟動容器
$ docker start 117843ade696117843ade696

stop 停止正在運行的容器
$ docker stop 117843ade696117843ade696

restart 重啟容器
$ docker restart 117843ade696117843ade696

rm 刪除容器
$ docker rm 117843ade696117843ade696

rmi 刪除鏡像
$ docker rmi ed9c93747fe1Deleted

登錄Docker Hub中心
$ docker login

發(fā)布上傳image(push)
$ docker push xiaoming/centos:v1

本文只是一個簡單的使用docker來提供一些如數(shù)據(jù)庫,redis等公共服務(wù)的搭建過程記錄.docker-compose.yml的詳細(xì)配置可以參考官方文檔或這篇文章.由于工作環(huán)境是在windows下,docker對windows的支持很不好,如果要在windows下安裝docker請確保,系統(tǒng)達(dá)到官方要求,這里記錄的是使用虛擬機的情況下搭建.
安裝docker
官方文檔中詳細(xì)說明了不同系統(tǒng)的安裝方法,這里以Centos為例.
確保linux系統(tǒng)滿足docker要求( 64-bit version of CentOS 7.3,貌似內(nèi)核也需要3.x以上的可以通過uname -a
查看)

升級/安裝 yum-utils $ sudo yum install -y yum-util

設(shè)置倉庫$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

將軟件包信息緩存 sudo yum makecache fast

安裝docker sudo yum -y install docker-ce

啟動docker sudo systemctl start docker

測試是否安裝成功 sudo docker run hello-world

開機啟動dockersudo chkconfig docker on

安裝docker-compose
這里使用python-pip的方式來安裝
安裝python-pipyum -y install epel-release yum -y install python-pip

安裝docker-composepip install docker-compose

測試是否安裝成功docker-compose version

編寫簡單docker-compose.yml例子
version: "2.0"services: redis: image: redis:3.2 restart: always ports: - "6379:6379" mongo: image: mongo:3.4.1 restart: always ports: - "27017:27017"

安裝啟動鏡像
在docker-compose.yml所在根目錄下執(zhí)行docker-compose up

統(tǒng)計某人的代碼提交量为迈,包括增加,刪除:
git log --author="$(git config --get user.name)" --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "added lines: %s removed lines : %s total lines: %s\n",add,subs,loc }' -
倉庫提交者排名前 5(如果看全部缺菌,去掉 head 管道即可):
git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5
倉庫提交者(郵箱)排名前 5:這個統(tǒng)計可能不會太準(zhǔn)葫辐,因為很多人有不同的郵箱,但會使用相同的名字
git log --pretty=format:%ae | gawk -- '{ ++c[$0]; } END { for(cc in c) printf "%5d %s\n",c[cc],cc; }' | sort -u -n -r | head -n 5
貢獻(xiàn)者統(tǒng)計:
git log --pretty='%aN' | sort -u | wc -l
提交數(shù)統(tǒng)計:
git log --oneline | wc -l
添加或修改的代碼行數(shù):
git log --stat|perl -ne 'END { print $c } $c += $1 if /(\d+) insertions/;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末伴郁,一起剝皮案震驚了整個濱河市耿战,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌焊傅,老刑警劉巖剂陡,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異租冠,居然都是意外死亡鹏倘,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進(jìn)店門顽爹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來纤泵,“玉大人,你說我怎么就攤上這事镜粤∧筇猓” “怎么了?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵肉渴,是天一觀的道長公荧。 經(jīng)常有香客問我,道長同规,這世上最難降的妖魔是什么循狰? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮券勺,結(jié)果婚禮上绪钥,老公的妹妹穿的比我還像新娘。我一直安慰自己关炼,他們只是感情好程腹,可當(dāng)我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著儒拂,像睡著了一般寸潦。 火紅的嫁衣襯著肌膚如雪色鸳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天见转,我揣著相機與錄音命雀,去河邊找鬼。 笑死池户,一個胖子當(dāng)著我的面吹牛咏雌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播校焦,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼赊抖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了寨典?” 一聲冷哼從身側(cè)響起氛雪,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎耸成,沒想到半個月后报亩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡井氢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年弦追,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片花竞。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡劲件,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出约急,到底是詐尸還是另有隱情零远,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布厌蔽,位于F島的核電站牵辣,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏奴饮。R本人自食惡果不足惜纬向,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望戴卜。 院中可真熱鬧罢猪,春花似錦、人聲如沸叉瘩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽薇缅。三九已至危彩,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間泳桦,已是汗流浹背汤徽。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留灸撰,地道東北人谒府。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像浮毯,于是被迫代替她去往敵國和親完疫。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一债蓝、Docker 簡介 Docke...
    極客圈閱讀 10,510評論 0 120
  • 一壳鹤、Docker 簡介 Docker 兩個主要部件:Docker: 開源的容器虛擬化平臺Docker Hub: 用...
    R_X閱讀 4,392評論 0 27
  • Docker — 云時代的程序分發(fā)方式 要說最近一年云計算業(yè)界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,548評論 15 147
  • 0x01 核心概念 Docker鏡像類似于虛擬機鏡像饰迹,可以理解為一個面向Docker引擎的只讀模板芳誓,包含了文件系統(tǒng)...
    閑云逸心閱讀 4,734評論 0 9
  • 生活真的很辛苦,我盡我所能的活著啊鸭,即使失敗了锹淌,也只是一無所有。 今天是周四赠制,上午上了四節(jié)數(shù)學(xué)課...
    樹羊閱讀 138評論 0 0