Docker Tips

本文已發(fā)表于我最近寫的開源博客OctBlog中御蒲,請見原文鏈接

鏡像

獲取鏡像

可以使用 docker pull 命令來從倉庫獲取所需要的鏡像

e.g. sudo docker pull ubuntu:12.04

列出本地鏡像

sudo docker images

修改已有鏡像來創(chuàng)建新鏡像

sudo docker commit -m "change source list" -a "gevin" 0b2616b0e5a8 gevin/ubuntu:v1

-m 來指定提交的說明信息签财,跟我們使用的版本控制工具一樣间唉;-a 可以指定更新的用戶信息;之后是用來創(chuàng)建鏡像的容器的 ID施逾;最后指定目標(biāo)鏡像的倉庫名和 tag 信息敷矫。創(chuàng)建成功后會返回這個鏡像的 ID 信息

載入鏡像

使用 docker load 從導(dǎo)出的本地文件中再導(dǎo)入到本地鏡像庫例获,例如

$ sudo docker load --input ubuntu_14.04.tar
或
$ sudo docker load < ubuntu_14.04.tar

導(dǎo)出鏡像

使用 docker save 導(dǎo)出鏡像到本地,如:

docker save mynewimage_id > /tmp/mynewimage.tar

詳細(xì)的導(dǎo)出方法如下:

The current (and correct) behavior is as follows:

docker save repo

Saves all tagged images + parents in the repo, and creates a repositories file listing the tags

docker save repo:tag

Saves tagged image + parents in repo, and creates a repositories file listing the tag

docker save imageid

Saves image + parents, does not create repositories file. The save relates to the image only, and tags are left out by design and left as an exercise for the user to populate based on their own naming convention.

移除本地鏡像

如果要移除本地的鏡像曹仗,可以使用 docker rmi 命令榨汤。注意 docker rm 命令是移除容器。

$ sudo docker rmi training/sinatra

容器

啟動容器

新建并啟動

所需要的命令主要為 docker run
交互式的容器:

$ sudo docker run -t -i ubuntu:14.04 /bin/bash
root@af8bae53bdd3:/#

-t 選項讓Docker分配一個偽終端(pseudo-tty)并綁定到容器的標(biāo)準(zhǔn)輸入上怎茫, -i 則讓容器的標(biāo)準(zhǔn)輸入保持打開

守護態(tài)運行

讓 Docker 容器在后臺以守護態(tài)(Daemonized)形式運行收壕。此時,可以通過添加 -d 參數(shù)來實現(xiàn)轨蛤。

例如下面的命令會在后臺運行容器蜜宪。

$ sudo docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
1e5535038e285177d5214659a068137486f96ee5c2e85a4ac52dc83f2ebe4147

啟動已終止容器

可以利用 docker start 命令,直接將一個已經(jīng)終止的容器啟動運行祥山。

終止容器

可以使用 docker stop 來終止一個運行中的容器

查看容器信息

通過 docker ps 命令來查看容器信息圃验。

sudo docker ps
or
sudo docker ps -a

獲取容器的輸出信息

要獲取容器的輸出信息,可以通過 docker logs 命令

$ sudo docker logs container_name
hello world
hello world
hello world
. . .

進入容器

在使用 -d 參數(shù)時缝呕,容器啟動后會進入后臺澳窑。 某些時候需要進入容器進行操作,有很多種方法供常,包括使用 docker attach 命令或 nsenter 工具等摊聋。

attach 命令

docker attach 是Docker自帶的命令。下面示例如何使用該命令话侧。

$ sudo docker run -idt ubuntu
243c32535da7d142fb0e6df616a3c3ada0b8ab417937c853a9e1c251f499f550
$ sudo docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED         STATUS         PORTS   NAMES
243c32535da7        ubuntu:latest       "/bin/bash"         18 seconds ago  Up 17 seconds          nostalgi_hypatia
$sudo docker attach nostalgic_hypatia
root@243c32535da7:/#

但是使用 attach 命令有時候并不方便。當(dāng)多個窗口同時 attach 到同一個容器的時候闯参,所有窗口都會同步顯示瞻鹏。當(dāng)某個窗口因命令阻塞時,其他窗口也無法執(zhí)行操作了。

nsenter 命令參考這里

導(dǎo)出容器

如果要導(dǎo)出本地某個容器鹿寨,可以使用 docker export 命令新博。

$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                    PORTS               NAMES
7691a814370e        ubuntu:14.04        "/bin/bash"         36 hours ago        Exited (0) 21 hours ago                       test
$ sudo docker export 7691a814370e > ubuntu.tar

這樣將導(dǎo)出容器快照到本地文件。

導(dǎo)入容器快照

可以使用 docker import 從容器快照文件中再導(dǎo)入為鏡像脚草,例如

$ cat ubuntu.tar | sudo docker import - test/buntu:v1.0
$ sudo docker images
REPOSITORY          TAG                 IMAGE ID            CREATED              VIRTUAL SIZE
test/ubuntu         v1.0                9d37a6082e97        About a minute ago   171.3 MB

此外赫悄,也可以通過指定 URL 或者某個目錄來導(dǎo)入,例如:

$sudo docker import http://example.com/exampleimage.tgz example/imagerepo
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末馏慨,一起剝皮案震驚了整個濱河市埂淮,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌写隶,老刑警劉巖倔撞,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異慕趴,居然都是意外死亡痪蝇,警方通過查閱死者的電腦和手機鄙陡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來躏啰,“玉大人趁矾,你說我怎么就攤上這事「” “怎么了毫捣?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長想际。 經(jīng)常有香客問我培漏,道長,這世上最難降的妖魔是什么胡本? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任牌柄,我火速辦了婚禮,結(jié)果婚禮上侧甫,老公的妹妹穿的比我還像新娘珊佣。我一直安慰自己,他們只是感情好披粟,可當(dāng)我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布咒锻。 她就那樣靜靜地躺著,像睡著了一般守屉。 火紅的嫁衣襯著肌膚如雪惑艇。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天拇泛,我揣著相機與錄音滨巴,去河邊找鬼。 笑死俺叭,一個胖子當(dāng)著我的面吹牛恭取,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播熄守,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蜈垮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了裕照?” 一聲冷哼從身側(cè)響起攒发,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎晋南,沒想到半個月后晨继,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡搬俊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年紊扬,在試婚紗的時候發(fā)現(xiàn)自己被綠了蜒茄。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡餐屎,死狀恐怖檀葛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情腹缩,我是刑警寧澤屿聋,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站藏鹊,受9級特大地震影響润讥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜盘寡,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一楚殿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧竿痰,春花似錦脆粥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蟹倾,卻和暖如春匣缘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鲜棠。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工肌厨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人岔留。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓夏哭,卻偏偏與公主長得像检柬,于是被迫代替她去往敵國和親献联。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,678評論 2 354

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

  • Docker — 云時代的程序分發(fā)方式 要說最近一年云計算業(yè)界有什么大事件何址?Google Compute Engi...
    ahohoho閱讀 15,532評論 15 147
  • 一里逆、Docker 簡介 Docker 兩個主要部件:Docker: 開源的容器虛擬化平臺Docker Hub: 用...
    R_X閱讀 4,385評論 0 27
  • 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一、Docker 簡介 Docke...
    極客圈閱讀 10,499評論 0 120
  • 0x01 核心概念 Docker鏡像類似于虛擬機鏡像用爪,可以理解為一個面向Docker引擎的只讀模板原押,包含了文件系統(tǒng)...
    閑云逸心閱讀 4,714評論 0 9
  • 秋風(fēng)秋雨一場涼, 人聚人散兩心翔偎血。 但聞秋蟲獨嘆息诸衔, 聲聲秋歌訴負(fù)郎盯漂。
    釋修堂閱讀 262評論 0 1