Docker 基本命令

docker的基本命令

docker version :查看docker的版本號瞭恰,包括客戶端屯曹、服務(wù)端、依賴的Go等

[root@centos7 ~]# docker version
Client:
 Version:      1.8.2-el7.centos
 API version:  1.20
 Package Version: docker-1.8.2-10.el7.centos.x86_64
 Go version:   go1.4.2
 Git commit:   a01dc02/1.8.2
 Built:        
 OS/Arch:      linux/amd64

Server:
 Version:      1.8.2-el7.centos
 API version:  1.20
 Package Version: 
 Go version:   go1.4.2
 Git commit:   a01dc02/1.8.2
 Built:        
 OS/Arch:      linux/amd64

docker info:查看系統(tǒng)(docker)層面信息,包括管理的images, containers數(shù)等

[root@centos7 ~]# docker info
Containers: 1
Images: 4
Storage Driver: devicemapper
 Pool Name: docker-8:3-36786088-pool
 Pool Blocksize: 65.54 kB
 Backing Filesystem: xfs
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 2.059 GB
 Data Space Total: 107.4 GB
 Data Space Available: 12.93 GB
 Metadata Space Used: 1.765 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.146 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.107-RHEL7 (2015-10-14)
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.10.0-327.el7.x86_64
Operating System: CentOS Linux 7 (Core)
CPUs: 1
Total Memory: 977.9 MiB
Name: centos7
ID: BUKD:MUW2:5X2D:G7BF:6Y7G:SKIH:LD6K:VUAC:3QA4:JY5C:S3DG:LFT2
WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

search 搜索鏡像

[root@centos7 ~]# docker search ubuntu12.10
INDEX       NAME                                  DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/chug/ubuntu12.10x32         Ubuntu Quantal Quetzal 12.10 32bit  base i...   0                    
docker.io   docker.io/chug/ubuntu12.10x64         Ubuntu Quantal Quetzal 12.10 64bit  base i...   0                    
docker.io   docker.io/marcgibbons/ubuntu12.10                                                     0                    
docker.io   docker.io/mirolin/ubuntu12.10                                                         0                    
docker.io   docker.io/mirolin/ubuntu12.10_redis                                                   0         

pull 下載鏡像

[root@centos7 ~]# docker pull ubuntu

run 使用鏡像創(chuàng)建容器

[root@centos7 ~]# docker run ubuntu /bin/echo hello world

run 創(chuàng)建容器恶耽,并交互式的運(yùn)行
這里會創(chuàng)建一個新的容器密任。

[root@centos7 ~]# docker run -i -t ubuntu /bin/bash
root@c43c7d102baa:/# cat /etc/issue
Ubuntu 14.04.3 LTS \n \l
# -t 選項(xiàng)讓Docker分配一個偽終端(pseudo-tty)并綁定到容器的標(biāo)準(zhǔn)輸入上, -i 則讓容器的標(biāo)準(zhǔn)輸入保持打開

當(dāng)利用 docker run 來創(chuàng)建容器時偷俭,Docker 在后臺運(yùn)行的標(biāo)準(zhǔn)操作包括:

  • 檢查本地是否存在指定的鏡像浪讳,不存在就從公有倉庫下載
  • 利用鏡像創(chuàng)建并啟動一個容器
  • 分配一個文件系統(tǒng),并在只讀的鏡像層外面掛載一層可讀寫層
  • 從宿主主機(jī)配置的網(wǎng)橋接口中橋接一個虛擬接口到容器中去
  • 從地址池配置一個 ip 地址給容器
  • 執(zhí)行用戶指定的應(yīng)用程序
  • 執(zhí)行完畢后容器被終止

run -d 守護(hù)態(tài)運(yùn)行
更多的時候涌萤,需要讓 Docker 容器在后臺以守護(hù)態(tài)(Daemonized)形式運(yùn)行淹遵。此時,可以通過添加 -d 參數(shù)來實(shí)現(xiàn)负溪。
例如下面的命令會在后臺運(yùn)行容器透揣。

[root@centos7 ~]# docker run -d ubuntu /bin/bash -c "while true;do echo hello world;sleep 1;done"

logs 查看容器的運(yùn)行

以上個例子為前導(dǎo)。

[root@centos7 ~]# docker logs 4f34f95b6abc
hello world
hello world
hello world
hello world
hello world
hello world
hello world

ps 查看容器

[root@centos7 ~]# docker ps -h

Usage:  docker ps [OPTIONS]

List containers

  -a, --all=false       Show all containers (default shows just running)
  --before=             Show only container created before Id or Name
  -f, --filter=[]       Filter output based on conditions provided
  --format=             Pretty-print containers using a Go template
  --help=false          Print usage
  -l, --latest=false    Show the latest created container, include non-running
  -n=-1                 Show n last created containers, include non-running
  --no-trunc=false      Don't truncate output
  -q, --quiet=false     Only 
 numeric IDs
  -s, --size=false      Display total file sizes
  --since=              Show created since Id or Name, include non-running

attach 連接已經(jīng)啟動的容器 / start -i 啟動并連接容器

[root@centos7 ~]# docker ps -a  #查看容器ID
[root@centos7 ~]# docker start <CONTAINER ID>   #啟動容器
[root@centos7 ~]# docker attach <CONTAINER ID>  #連接容器川抡,該容器必須是啟動狀態(tài)
或者
[root@centos7 ~]# docker start -i <CONTAINER ID>        #啟動并連接容器

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

commit 將容器的狀態(tài)保存為鏡像

[root@centos7 ~]# docker commit c43c7d102baa ubhttp
d47bbf8e50bace073de2b256b0360cfab029c11881f0d361fce7ae7464aa40ff
[root@centos7 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ubhttp              latest              d47bbf8e50ba        54 seconds ago      248 MB
docker.io/ubuntu    latest              8693db7e8a00        7 days ago          187.9 MB
## 更為標(biāo)準(zhǔn)點(diǎn)的如下:
$ sudo docker commit -m "Added json gem" -a "Docker Newbee" 0b2616b0e5a8 ouruser/sinatra:v2
其中,-m 來指定提交的說明信息倘感,跟我們使用的版本控制工具一樣放坏;-a 可以指定更新的用戶信息;之后是用來創(chuàng)建鏡像的容器的 ID老玛;最后指定目標(biāo)鏡像的倉庫名和 tag 信息淤年。創(chuàng)建成功后會返回這個鏡像的 ID 信息。

diff 命令查看容器內(nèi)的文件變化

它可以列出容器內(nèi)發(fā)生變化的文件和目錄蜡豹。這些變化包括添加(A-add)麸粮、刪除(D-delete)、修改(C-change)

[root@centos7 ~]# docker diff c43c7d102baa

cp 命令拷貝文件

#從docker中往本地拷貝文件
[root@centos7 ~]# docker cp c43c7d102baa:/var/www/html/index.html /opt/   
[root@centos7 ~]# ls /opt/
index.html  rh
# 從本地往docker中拷貝文件
[root@centos7 ~]# docker cp aa c43c7d102baa:/var
[root@centos7 ~]# docker start -i c43c7d102baa
root@c43c7d102baa:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@c43c7d102baa:/# ls var/
aa  backups  cache  lib  local  lock  log  mail  opt  run  spool  tmp  www

inspect 收集有關(guān)容器和鏡像的底層信息

Docker inspect命令可以收集有關(guān)容器和鏡像的底層信息镜廉。這些信息包括:

  • 容器實(shí)例的IP地址
  • 端口綁定列表
  • 特定端口映射的搜索
  • 收集配置的詳細(xì)信息

語法:

docker inspect container/image

kill 命令發(fā)送sigkill信號停止容器的主進(jìn)程

語法:

docker kill [options] <container_id>

rmi 移除一個或多個鏡像

docker rmi <image_id>
#注意:在刪除鏡像之前要先用 docker rm 刪掉依賴于這個鏡像的所有容器

wait 阻塞對指定容器的其它調(diào)用方法弄诲,直到容器停止后退出阻塞

docker wait <container_id>

tag 修改鏡像的標(biāo)簽

[root@centos7 ~]# docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
<none>              <none>              f59c7e5b1817        18 hours ago        192 MB
docker.io/ubuntu    latest              8693db7e8a00        7 days ago          187.9 MB
[root@centos7 ~]# docker tag f59c7e5b1817 zwx/ub_mv:127 
[root@centos7 ~]# docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
zwx/ub_mv           127                 f59c7e5b1817        18 hours ago        192 MB
docker.io/ubuntu    latest              8693db7e8a00        7 days ago          187.9 MB

docker的導(dǎo)入導(dǎo)出操作

save 保存鏡像為tar文件并發(fā)送到STDOUT:

[root@node2 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
zwx_ub              latest              f59c7e5b1817        7 seconds ago       192 MB
ubuntu              latest              8693db7e8a00        6 days ago          187.9 MB
[root@node2 ~]# docker save f59c7e5b1817 >zwx_ub.tar
# 我將zwx_ub這個鏡像導(dǎo)出成tar包,并拷貝到centos7的測試機(jī)中導(dǎo)入娇唯,導(dǎo)入過程在下邊齐遵。

load 從tar文件中載入鏡像或倉庫到STDIN:

[root@centos7 ~]# docker load -i zwx_ub.tar 
[root@centos7 ~]# docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ubhttp              latest              d47bbf8e50ba        About an hour ago   248 MB
<none>              <none>              f59c7e5b1817        16 hours ago        192 MB
docker.io/ubuntu    latest              8693db7e8a00        7 days ago          187.9 MB
[root@centos7 ~]# docker run -it f59c7e5b1817
root@e17558664f8d:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@e17558664f8d:/# ls /mnt/
zwx
# 可以看出,我導(dǎo)入zwx_ub這個鏡像后塔插,鏡像ID并沒有變化梗摇,我創(chuàng)建個容器并進(jìn)入,發(fā)現(xiàn)打包前我創(chuàng)建的文件都在想许。

import 從本地文件系統(tǒng)導(dǎo)入一個鏡像

比如伶授,先下載了一個 ubuntu-14.04 的鏡像断序,之后使用以下命令導(dǎo)入
tar.gz的鏡像可以在http://openvz.org/Download/template/precreated下載。

[root@centos7 ~]# cat ubuntu-14.04-x86_64-minimal.tar.gz  |docker import - ubuntu:zwx
23997a971195cdd826f16a50573e480e1be1679729636178146425cdd46d1b52
[root@centos7 ~]# docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
ubuntu              zwx                 23997a971195        28 seconds ago      214.9 MB

export 容器的導(dǎo)出

[root@centos7 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
16f568766019        ubuntu              "/bin/bash"         52 minutes ago      Up 45 minutes                           elegant_mcclintock
[root@centos7 ~]# docker export 16f568766019 >ubuntu.tar

import 容器的導(dǎo)入

可以將容器的tar文件再導(dǎo)入為鏡像

$ cat ubuntu.tar | sudo docker import - test/ubuntu: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

:用戶既可以使用 docker load 來導(dǎo)入鏡像存儲文件到本地鏡像庫,也可以使用 docker import 來導(dǎo)入一個容器快照到本地鏡像庫疮蹦。這兩者的區(qū)別在于容器快照文件將丟棄所有的歷史記錄和元數(shù)據(jù)信息(即僅保存容器當(dāng)時的快照狀態(tài))诸迟,而鏡像存儲文件將保存完整記錄,體積也要大挚币。此外亮蒋,從容器快照文件導(dǎo)入時可以重新指定標(biāo)簽等元數(shù)據(jù)信息。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末妆毕,一起剝皮案震驚了整個濱河市慎玖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌笛粘,老刑警劉巖趁怔,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異薪前,居然都是意外死亡润努,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門示括,熙熙樓的掌柜王于貴愁眉苦臉地迎上來铺浇,“玉大人,你說我怎么就攤上這事垛膝△⒙拢” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵吼拥,是天一觀的道長倚聚。 經(jīng)常有香客問我,道長凿可,這世上最難降的妖魔是什么惑折? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮枯跑,結(jié)果婚禮上惨驶,老公的妹妹穿的比我還像新娘。我一直安慰自己敛助,他們只是感情好敞咧,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辜腺,像睡著了一般休建。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上评疗,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天测砂,我揣著相機(jī)與錄音,去河邊找鬼百匆。 笑死砌些,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的加匈。 我是一名探鬼主播存璃,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼雕拼!你這毒婦竟也來了纵东?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤啥寇,失蹤者是張志新(化名)和其女友劉穎偎球,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辑甜,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡衰絮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了磷醋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片猫牡。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖邓线,靈堂內(nèi)的尸體忽然破棺而出淌友,到底是詐尸還是另有隱情,我是刑警寧澤褂痰,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布亩进,位于F島的核電站,受9級特大地震影響缩歪,放射性物質(zhì)發(fā)生泄漏归薛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一匪蝙、第九天 我趴在偏房一處隱蔽的房頂上張望主籍。 院中可真熱鬧,春花似錦逛球、人聲如沸千元。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽幸海。三九已至祟身,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間物独,已是汗流浹背袜硫。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留挡篓,地道東北人婉陷。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像官研,于是被迫代替她去往敵國和親秽澳。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345

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