一、運行容器
1、基於鏡像新建一個容器並啟動
docker run -it --rm -d -p 8888:8080 tomcat:8.0 -i:交互式操作 -t:終端 -rm:容器退出后隨之將其刪除,可以避免浪費空間 -p :端口映射 -d :容器在后台運行
指明了 -d 運行鏡像,會返回容器的 id;如果不指明 -d 運行鏡像,會打印出 catalina.out 的 日志,在 [crtl +c] 后,容器即停止運行。
當利用 docker run 來創建容器時,Docker 在后台運行的標准操作包括:
-- 檢查本地是否存在指定的鏡像,不存在就從公有倉庫下載
-- 利用鏡像創建並啟動一個容器
-- 分配一個文件系統,並在只讀的鏡像層外面掛載一層可讀寫層
-- 從宿主主機配置的網橋接口中橋接一個虛擬接口到容器中去
-- 從地址池配置一個 ip 地址給容器
-- 執行用戶指定的應用程序
-- 執行完畢后容器被終止檢查本地是否存在指定的鏡像,不存在就從公有倉庫下載
-- 利用鏡像創建並啟動一個容器
-- 分配一個文件系統,並在只讀的鏡像層外面掛載一層可讀寫層
-- 從宿主主機配置的網橋接口中橋接一個虛擬接口到容器中去
-- 從地址池配置一個 ip 地址給容器
-- 執行用戶指定的應用程序
-- 執行完畢后容器被終止
2、啟動一個終止狀態(stopped)的容器
docker container start [CONTAINER ID]
docker start $(docker ps -aq) --備注:啟動所有 docker 容器
二、操作容器
1、查看容器列表
#列出運行中的容器 docker ps docker container ls #列出所有容器(包含終止狀態) docker ps -a docker container ls -a
#查看具體容器的信息
docker inspect [container ID or NAMES]
#查看容器的使用資源狀況
docker stats [container ID or NAMES]
2、查看容器日志
docker logs [OPTIONS] [container ID or NAMES] --details 顯示更多的信息 -f, --follow 跟蹤實時日志 --since string 顯示自某個timestamp之后(2018-07-23 00:00:00)的日志,或相對時間,如42m(即42分鍾) --tail string 從日志末尾顯示多少行日志, 默認是all -t, --timestamps 顯示時間戳 --until string 顯示自某個timestamp之前的日志,或相對時間,如42m(即42分鍾)
3、進入容器
docker exec -it [CONTAINER ID] bash
進入容器后輸入 exit 或者 [crtl + c] 即可退出容器。
三、終止容器
1、直接刪除容器
#刪除終止狀態的容器 docker rm [CONTAINER ID] #刪除所有處於終止狀態的容器 docker container prune
#刪除未被使用的數據卷
docker volume prune #刪除運行中的容器 docker rm -f [CONTAINER ID]
#批量停止所有的容器
docker stop $(docker ps -a -q)
#批量刪除所有的容器
docker rm $(docker ps -a -q)
2、終止容器進程,容器進入終止狀態(stopped)
docker container stop [CONTAINER ID]
四、容器的導出和導入
1、容器的導出
#這樣將導出容器快照到本地文件
docker export [CONTAINER ID] > [tar file]
2、容器的導入
#從容器快照文件中再導入為鏡像
cat [tar file] | docker import - [name:tag]
docker import 來導入一個容器快照到本地鏡像庫時,將丟棄所有的歷史記錄和元數據信息(即僅保存容器當時的快照狀態),既然這樣,那么 docker export 是不是可以考慮作為入侵時的現場保護呢?
參考資料:《Docker — 從入門到實踐》