Docker 來點好玩的

2021-09-16 21:50:55 字數 3427 閱讀 3962

經過上篇docker入門後,肯定有點抱怨,還是沒有體驗到docker的威力。現在我們來點好玩的。

以前我們裝ubuntu,都是要費老大的力氣,有了docker,我們裝個ubuntu玩玩。

docker run -t -i ubuntu:14.04 /bin/bash
好了,你裝好了ubuntu了,可以在裡面隨便玩,玩壞了!沒事,刪掉重建乙個。

這裡跟我們之前建立啟動容器的方式不一樣,多了一些引數。我們來找--help幫忙

docker run --help 

//擷取部分

-t, --tty allocate a pseudo-tty

--ulimit value ulimit options (default)

-i, --interactive keep stdin open even if not attached

-t 分配乙個互動終端, -i 讓我們能輸入字元 ;兩個結合起來就能進行互動。最後/bin/bash 是讓容器ubuntu啟動時bash執行。

為了方便管理,我們建立建立容器的時候,可以初始化乙個name

docker run -t -i --name robin_test ubuntu:14.04 /bin/bash
最後面可以看到名字變了,之前我們都沒有初始化名字,docker會幫我們隨機生成乙個。name 是唯一的,當第二次執行上面耳朵命令,會失敗,因為容易裡已經存在robin_test這個容器。

如何退出了? 直接ctrl + d 或者 exit 就能退出了,docker ps 檢視,發現剛才執行的容器沒有執行,ctrl + d 退出,容器也會停止執行。

退出了,怎麼讓剛才的容器重新跑起來?

docker start id/name
docker ps 可以看到,容器正在執行,有人想問,我想進入到這個ubuntu容器裡去啊!怎麼做?

docker attach id/name
我們在實際開發中,一般不會run的時候就登陸到容器裡去,而是把應用部署到容器裡,以後臺保護程序來執行。

docker run -t -i -d --name robin_test ubuntu:14.04 /bin/bash

//在原來額基礎上加上-d引數就行, daemon (守護)

// 為了你以後想登陸進去,我加上了 -t -i 互動引數

問題來了,我的應用布置上去了,我怎麼看執行狀態啊!就是docker的日誌。為了方便演示,我們建立啟動乙個新容器,讓他一直列印helloworld

啟動乙個新容器

docker run --name loop -d ubuntu:14.04 /bin/sh -c "while [ true ]; do echo helloworld; sleep 1; done"
然後執行下面的一條檢視日誌,就可以看到我們神奇的helloworld了

docker logs [容器名]

docker logs [容器名] -f //實時檢視

docker logs [容器名] -f --tail 100 //加上行數

docker logs [容器名] -f t --tail 0 //日誌顯示時間

解釋下/bin/sh -c "..." ,先來man下sh(dash) , command interpreter 指令直譯器,-c 將字串解析成指令執行。

我們經常在linux上部署應用,會檢視一些系統資訊,我們也可以檢視執行容器的一些程序,cpu記憶體使用情況等。

先來看看程序,任然檢視剛才的loop容器

docker top loop
可以看到

這裡有兩個程序,乙個是while迴圈,乙個是sleep睡眠。

再來看看應用的cpu記憶體一些資訊

docker stats loop
可以看到loop占用了多少記憶體,多少cpu,以及io的統計。

這裡來點更有意思的,我們執行的容器,我能不能讓他執行一些命令,可是我啟動的時候,沒有以互動方式run的,現在也登陸不進去。我想修改配置,怎麼辦啊!

哈哈!等你看完下面的,這些問題都變得so easy!!!

先來乙個tomcat映象

docker run -d --name test -p 8080:8080 tomcat
執行docker ps 可以看到你的tomcat已經跑起來的,而且埠有對映8080對映到主機的8080上。

用瀏覽器訪問下host:8080 ,出現經典的tomcat主頁。

好戲才開始

在tomcat的root下建立乙個hello.html,這裡需要用到docker exec

訪問下hello.html 發現能訪問,但是什麼也沒有,乙個空白頁。沒錯,你只是建立了乙個hello.html頁面,沒有寫入任何東西。

給你新建的檔案寫點東西

在訪問下頁面,頁面上顯示helloworld,有東西了,很爽吧!很簡單,用sh -c來執行下命令。

將檔案裡的內容 cat 下

這裡千萬別加-d引數,不然看不到任何輸出資訊。

補充:大家可能有疑惑,我怎麼知道tomcat的路徑啊!這裡先給大家引入乙個檢視容器詳情的指令,docker inspect,執行docker inspect test 可以看到很長一段json格式的資訊,我們先別看那麼多,反正也看不懂,別把自己弄糊塗了!

現在你應該知道路徑了吧!

以互動的方式再進入執行的tomcat

docker exec -it test /bin/bash
好了,進入到了互動介面了,退出的話直接exit就行,但是容器是沒有停止的。

之前我們run的時候可以以互動模式進入的,退出容器也停止了,不推薦。這裡我們小總結下:啟動images的時候,以-d守護程序啟動,然後進入互動裡的數,就docker exec -it test /bin/bash方式。

今天先到這了,接下來你可以去好好裝逼了,下期再見。

來點好康的

想了巨大久的正解,最後還是只能胡個昨天剛學的點分治暴力qwq。rm 2s 512mb.tt ppl 在 rm zbqc 隨機遊走累了,現在他想嘗試一些好康的路徑。由於眾所周知的原因,rm zbqc 非常小,小的兩點之間有且僅有一條路徑,也就是說可以視為一棵樹。tt ppl 認為好康的路徑 x rig...

每天讀一點好玩心理學 心理學

尾數的 作用,星期四是事故多發日 1 尾數的魅力 同樣的商品,標價4980與5000,銷售情況截然不同,雖然只是相差20,但人們心裡會感覺4980比4000多,比5000少 歐美多有9,中日多用8 打折也是,比如9.1折,看起來好像折扣率很高的樣子2 星期四是事故多發日 星期一是每週第一天,比較緊張...

來點陽光點的

9x年,在上高中吧,一部日劇的主題曲,故事很感人,很喜歡 大佬 的風趣幽默,最忘記不了是這首 陽光 的主題曲。屋簷下的兄弟姐妹都遇上人生的難事,每當事情明朗時,一放這首曲子,我眼睛又溼了 哎,哈哈。最喜歡這句話 流淚是對眼睛最好的運動,感動是對心靈最好的清潔!有機會一起 再感動一翻吧。911 the...