本文介紹Docker基本的操作命令,包括對(duì)鏡像容器的獲取,查看,保存,啟停等操作。
1.
檢查docker的版本:
docker version
docker -v
2.
搜索名字叫做tutorial的鏡像:
docker search tutorial
3.
下載tutorial鏡像:
docker pull learn/tutorial
4.
在docker容器中運(yùn)行hello world:
docker run learn/tutorial echo "hello word"
在learn/tutorial鏡像里面安裝ping程序:
docker run learn/tutorial apt-get install -y ping
在新的鏡像中運(yùn)行ping www.google.com命令
docker run lean/ping ping www.google.com
5.
查看所有正在運(yùn)行中的容器列表:
docker ps -a
獲得上一個(gè)執(zhí)行完命令之后容器的id:
docker ps -l
列出鏡像的基本信息
docker images
docker images [NAME]/[CONTAINER ID]
查看容器的詳細(xì)信息
docker inspect efe
6.
使用指定鏡像ubuntu:16.04來啟動(dòng)一個(gè)容器:
docker run -t -i ubuntu:16.04 /bin/bash
如果不指定具體的標(biāo)記,則默認(rèn)使用latest標(biāo)記信息。
交互模式運(yùn)行:
docker run -it chug/ubuntu14.04x64 /bin/bash
-it表示運(yùn)行在交互模式,i表示打開并保持stdout,t表示分配一個(gè)終端(pseudo-tty)。
一般這個(gè)模式就是可以啟動(dòng)bash,然后和容器有命令行的交互。
后臺(tái)啟動(dòng)一個(gè)容器:
docker run -d mysql
如果想進(jìn)入到后臺(tái)運(yùn)行的容器,首先獲取其id,使用attach命令進(jìn)入:
docker attach aa97ba3292ce
使用rm在退出容器時(shí)刪除容器,不然docker中臨時(shí)容器會(huì)越來越多:
docker run --rm -it chug/ubuntu14.04x64 /bin/bash
如果使用exit,命令退出,則容器的狀態(tài)處于停止?fàn)顟B(tài),而不是后臺(tái)運(yùn)行。
如果想讓容器一直后臺(tái)運(yùn)行,而不是停止,可以使用快捷鍵 ctrl+p ctrl+q 退出,此時(shí)容器的狀態(tài)為Up。
啟動(dòng)、停止、重啟容器aa97ba3292ce的命令:
docker start aa97ba3292ce
docker stop aa97ba3292ce
docker restart aa97ba3292ce
7.
保存鏡像,需要在退出鏡像前記住容器的id:
root@aa97ba3292ce
或者獲得上一個(gè)執(zhí)行完命令之后容器的id:
docker ps -l
然后保存鏡像如下,提交作者,描述,需要保存的鏡像id,保存的鏡像名稱:
docker commit -a "yuwen 10208438" -m "ranger admin install with mysql5.5 v1" ba9ca696127d org.apache.ranger/mysql:v1
查看所有的鏡像,查看保存結(jié)果
docker images | grep mysql
使用tag命令添加鏡像標(biāo)簽,為了方便在后續(xù)工作中使用特定的鏡像:
docker tag docker.io/hello-world:latest hello-world:mytag
保存鏡像到文件,將org.apache.ranger/mysql:v1保存為mysql5.5v1.tar:
docker save -o mysql5.5v1.tar org.apache.ranger/mysql:v1
加載本地鏡像:
docker load -i mysql5.5v1.tar
8.
刪除容器或者鏡像,注意:刪除鏡像前必須先刪除以此鏡像為基礎(chǔ)的容器:
docker rm container_id
使用ID刪除:
docker rmi image_id
使用標(biāo)簽刪除(如果存在別名,只會(huì)刪除該別名)
docker rmi TAG
強(qiáng)制刪除:
docker rmi -f centos-test:vim
9.
遞歸地輸出指定鏡像的歷史鏡像
docker history <image-id>
不截?cái)噍敵鼋Y(jié)果:
docker history --no-trunc <image-id>
10.
進(jìn)入已經(jīng)運(yùn)行的鏡像:
docker exec -it bce85007f6d7 /bin/sh
11.
拷貝指定鏡像目錄下的文件到本地:
docker cp bce85007f6d7:/app/sline-cm-service-2.1.0-SNAPSHOT.jar .
12.日志查看
logs命令查看容器日志:
docker logs [OPTIONS] CONTAINER
OPTIONS說明:
-f : 跟蹤日志輸出
--since :顯示某個(gè)開始時(shí)間的所有日志
-t : 顯示時(shí)間戳
--tail :僅列出最新N條容器日志
查看日志,并且不斷輸出最新日志:
docker logs -f sline-business
查看最后100行日志:
docker logs --tail 100 sline-business
查看最后100行日志,且追加輸出:
docker logs --tail 100 -f sline-business
查看最近30分鐘的日志:
docker logs --since 30m sline-business
查看指定時(shí)間后的日志,顯示最后100行,且追加輸出:
docker logs -f -t --since="2018-02-08" --tail=100 sline-business