啟動docker引擎
service docker start
重啟docker引擎
service docker restart
查看docker版本
docker version
docker鏡像常用操作
查看本地所有鏡像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.56.101:5000/hello/hello-api 1.0.0 c1cefec5b8a8 17 hours ago 673MB
nginx latest c82521676580 4 days ago 109MB
registry latest b2b03e9146e1 3 weeks ago 33.3MB
java 8 d23bdf5b1b1b 18 months ago 643MB
其中REPOSITORY表示鏡像倉庫的名稱.
TAG:表示鏡像的標簽,一般情況下帶有具體的版本或別名,如1.0.0是版本,latest是最新版.
IMAGE ID:表示鏡像的標識符ID,具有唯一性,是64位完整鏡像ID的縮略表示形式.
CREATED:表示鏡像創(chuàng)建時間離現(xiàn)在是多久了.
SIZE:鏡像的字節(jié)大小.
在docker hub中搜索鏡像
docker search dubbo
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
calee2005/dubbo Alibaba Dubbo RPC Framework build 6 [OK]
chenchuxin/dubbo-admin dubbo admin docker 5 [OK]
webuilder/dubboadmin Dubbo Admin v2.8.4 with tomcat 9 3
lemonguge/dubbo-admin dubbo-admin版本為2.5.3 3
上面搜索出來的結(jié)果:
NAME:是鏡像倉庫的名稱.
DESCRIPTION:是鏡像倉庫的描述.
STARS:是鏡像倉庫的收藏數(shù).
OFFICIAL:表示是否為官方倉庫.
AUTOMATED:表示是否為自動構(gòu)建倉庫.
導(dǎo)出鏡像文件
docker save dubbo > dubbo.tar
若不指定文件路徑則將鏡像導(dǎo)出到當前目錄上.
導(dǎo)入鏡像文件
docker load < dubbo.tar
前面導(dǎo)出的鏡像文件可在其他機器上導(dǎo)入.
在本地鏡像中心或者docker hub拉取最新版本的鏡像
docker pull centos
刪除本地鏡像
docker rmi 鏡像ID
其中鏡像ID可由docker images列出來查看,另外如果此鏡像已經(jīng)啟動了容器,執(zhí)行rmi時會提示刪除不了:Error response from daemon: conflict: unable to delete c1cefec5b8a8 (cannot be forced) - image is being used by running container d120894324c5,意思是已經(jīng)有容器在運行了,要先刪除運行中的容器才能刪除此鏡像.
docker容器常用操作
運行容器
[root@bogon /]# docker run -d -p 58080:8080 192.168.56.101:5000/hello/hello-api:1.0.0
d120894324c5e024658616f61dfa5f29317dd1ca87994b5ee933056eeacf0a70
docker run命令后可加不同的參數(shù)如常用的:
-d表示在后頭啟動該容器并返回容器ID,默認情況下容器是在前臺啟動的.
-p表示對容器中應(yīng)用程序暴露的端口進行映射,左邊端口58080為宿主機的的端口,右邊端口8080為容器中應(yīng)用程序暴露的端口.
-i: 以交互模式運行容器,通常與 -t 同時使用.
-t: 為容器重新分配一個偽輸入終端,通常與 -i 同時使用.
--name="xxx": 為容器指定一個名稱.
-m :設(shè)置容器使用內(nèi)存最大值.
--expose=[]: 開放一個端口或一組端口.
-v:添加數(shù)據(jù)卷,用于將宿主機上的磁盤掛載到容器中,可理解為目錄映射,數(shù)據(jù)卷的表達格式為"宿主機路徑:容器路徑",宿主機路徑可以為相對路徑,容器路徑必須為絕對路徑,多次使用-v,可同時掛載多個宿主機路徑到容器中.
查看當前正在運行的容器
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d120894324c5 192.168.56.101:5000/hello/hello-api:1.0.0 "/bin/sh -c 'java ..." 21 minutes ago Up 21 minutes 0.0.0.0:58080->8080/tcp confident_lewin
ffac4cc26314 registry:latest "/entrypoint.sh /e..." 45 hours ago Up 4 hours 0.0.0.0:5000->5000/tcp registry
其中CONTAINER ID為容器ID,IMAGE是鏡像名稱,COMMAND:表示容器啟動時運行的命令,docker要求啟動容器時需要運行一個命令.
CREATED:容器創(chuàng)建時間,STATUS:表示容器運行的狀態(tài),UP為運行中,Exited為已退出.PORTS:容器對外暴露的端口.NAMES:容器名稱,由docker引擎自動生成,可以在docker run命令中通過--name來指定.
docker ps也包括一些常見的選項:
-a :顯示所有的容器,包括未運行的.
-f :根據(jù)條件過濾顯示的內(nèi)容.
--format :指定返回值的模板文件.
-l :顯示最近創(chuàng)建的容器.
-n :列出最近創(chuàng)建的n個容器.
--no-trunc :不截斷輸出.
-q :靜默模式,只顯示容器編號.
-s :顯示總的文件大小.
進入docker容器
有兩種方法進入容器:attach和exec.
attach 方式:
docker attach 容器ID或者容器名稱
要attach上去的容器必須正在運行,可以同時連接上同一個container來共享屏幕(與screen命令的attach類似).
exec方式:
docker exec -it <容器ID|容器Name> bash|sh
attach 與 exec 主要區(qū)別如下:
attach直接進入容器啟動命令的終端,不會啟動新的進程.
exec 則是在容器中打開新的終端,并且可以啟動新的進程.
如果想直接在終端中查看啟動命令的輸出用attach,其他情況使用exec.
停止容器
docker stop 容器ID|容器Name
終止容器
docker kill 容器ID|容器Name
刪除容器
docker rm 容器ID|容器Name
注意刪除正在運行的容器時需先kill掉此容器或使用-f參數(shù),才能成功刪除.
刪除所有的容器
docker rm -f $(docker ps -a -q)
啟動容器
docker start 容器ID|容器Name
重啟容器
docker restart 容器ID|容器Name
導(dǎo)出容器
docker export 容器ID > dubbo.tar
若不指定路徑則導(dǎo)出在當前目錄上.
導(dǎo)入容器
docker import dubbo.tar dubbo:latest
導(dǎo)出的容器可在另一臺機器上導(dǎo)入為鏡像.
有時候啟動容器后,需要查看容器運行的日志可執(zhí)行以下命令.
docker logs -f -t --tail 200 容器Name