八大基本排序演算法---堆排序
幫助命令
docker version
docker info
docker --help
映象命令
docker images
#列出本地主機上的映象
docker images
#列出本地所有的映象(含中間映像層) docker images -a #只顯示映象ID docker images -q #顯示映象的摘要資訊 docker images --digests #顯示完整的映象資訊 docker images --no-trunc
docker search
搜尋映象
docker search 某個映象的名字
#搜尋tomcat
docker search tomcat
#完整的映象描述
docker search --no-trunc tomcat
#列出收藏數不小於指定值d的映象
docker search -s 30 tomcat
docker pull
下載映象
docker pull 某個映象的名字:[TAG]
#兩者等價
docker pull tomcat
docker pull tomcat:latest
docker rmi
刪除映象
#刪除tomcat映象 docker rmi tomcat #強制刪除映象 docker rmi -f tomcat #刪除多個映象 docker rmi 映象1 映象2 #刪除所有映象 docker rmi $(docker images -qa)
容器命令
新建並啟動容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS說明(常用):有些是一個減號,有些是兩個減號
--name="容器新名字": 為容器指定一個名稱;
-d: 後臺執行容器,並返回容器ID,也即啟動守護式容器;
-i:以互動模式執行容器,通常與 -t 同時使用;
-t:為容器重新分配一個偽輸入終端,通常與 -i 同時使用;
-P: 隨機埠對映;
-p: 指定埠對映,有以下四種格式
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort
#執行centos
docker run -it centos
列出當前所有正在執行的容器
docker ps [OPTIONS]
OPTIONS說明(常用):
-a :列出當前所有正在執行的容器+歷史上執行過的
-l :顯示最近建立的容器。
-n:顯示最近n個建立的容器。
-q :靜默模式,只顯示容器編號。
--no-trunc :不截斷輸出。
#列出當前所有正在執行的容器+歷史上執行過的
docker ps -a
退出容器
方式一:
exit : 容器停止退出
方式二:
Ctrl
+P
+Q
: 容器不停止退出
啟動容器
docker start 容器ID或者容器名
重啟容器
docker restart 容器ID或者容器名
停止容器
docker stop 容器ID或者容器名
強制停止容器
docker kill 容器ID或者容器名
刪除已停止的容器
docker rm 容器ID或者容器名
刪除所有
#兩個一樣
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm
啟動守護式容器
#使用映象centos:latest以後臺模式啟動一個容器
docker run -d centos
問題:然後docker ps -a 進行檢視, 會發現容器已經退出
很重要的要說明的一點: Docker容器後臺執行,就必須有一個前臺程序.
容器執行的命令如果不是那些一直掛起的命令(比如執行top,tail),就是會自動退出的。
這個是docker的機制問題,比如你的web容器,我們以nginx為例,正常情況下,我們配置啟動服務只需要啟動響應的service即可。例如
service nginx start
但是,這樣做,nginx為後臺程序模式執行,就導致docker前臺沒有執行的應用,
這樣的容器後臺啟動後,會立即自殺因為他覺得他沒事可做了.
所以,最佳的解決方案是,將你要執行的程式以前臺程序的形式執行
檢視容器日誌
#執行容器,並在後臺不關閉
docker run -d centos /bin/sh -c "while true;do echo hello world;sleep 2;done"
檢視日誌
docker logs -f -t --tail 容器ID
#檢視日誌
docker logs f4573f9d6747
#檢視日誌加時間
docker logs -t f4573f9d6747
#檢視日誌實時
docker logs -tf f4573f9d6747
#檢視日誌實時,從最近的三行開始看
docker logs -tf --tail 3 f4573f9d6747
檢視容器內執行的程序
docker top 容器ID
docker top f4573f9d6747
檢視容器內部細節
以json串的形式檢視
docker inspect 容器ID
docker inspect f4573f9d6747
進入正在執行的容器並以命令列互動
方式一:
docker attach 容器ID
docker attach 3773a13a5572
方式二:
不進入容器內部操作容器
docker exec -it 容器ID bashShell
docker exec -it 3773a13a5572 ls -l /tmp
從容器內拷貝檔案到主機
docker cp 容器ID:容器內路徑 目的主機路徑
#從容器拷貝hello.txt檔案到本機
docker cp 3773a13a5572:/tmp/hello.txt ./hello.txt