Docker 學習 (2): 常用命令
命令行操作前提:
systemctl start docker 啟動docker
sudo -i 進去root模式
-
docker version 查看對應安裝的版本號,可以用來檢測docker是否安裝c成功
-
docker info Docker容器安裝之後,個人信息的描述,比version更加詳細
-
docker --help docker的幫助命令
二、鏡像命令
前提:在操作鏡像的時候,如果鏡像名稱的後面沒有加版本號,那默認就是操作的最高的版本(tomcat:latest)
所以在操作鏡像的時候最好都要加上對應的版本號。。。
-
docker images 參數 列出本地主機上的鏡像
-a 列出本地所有的鏡像(含中間映像層) -q 只顯示鏡像ID --digests 顯示鏡像的摘要信息 --no-trunc 顯示完整的鏡像信息 -
各個選項說明:
-
REPOSITORY | 表示鏡像的倉庫源 |
---|---|
TAG | 鏡像的標簽 |
IMAGE ID | 鏡像ID |
CREATED | 鏡像創建時間 |
SIZE | 鏡像大小 |
-
docker search [OPTIONS] 鏡像名字 查看某一個鏡像
官網網址 : https://hub.docker.com 上述命令與網站顯示的內容相同
--no-trunc 顯示完整的鏡像描述 -s 列出收藏數不小於指定值的鏡像 --automated 只列出 automated build類型的鏡像 -
docker pull 鏡像名稱 下載鏡像
-
docker rmi 鏡像名稱 刪除鏡像
加 -f 是強制刪除,如果鏡像在運行,就不可以刪除。可以加 -f 強制刪除
docker rmi -f 鏡像ID 刪除單個 docker rmi -f 鏡像名1:TAG 鏡像名2:TAG 刪除多個 docker rmi -f $(docker images -qa) 刪除全部
-
docker rmi -f $(docker images -qa)
相當於是聚合命令,先執行$()裏邊的語句,查詢到全部之後,刪除全部
三、容器命令
-
啟動容器 docker run [OPTIONS] 鏡像名稱 參數
-
OPTIONS說明(常用):有些是一個減號,有些是兩個減號
--name 容器新名字": 為容器指定一個名稱 -d 後臺運行容器,並返回容器id,也即啟動守護式容器 -i 以交互模式運行容器,通常與 -t 同時使用 -t 為容器重新分配一個偽輸入終端,通常與 -i 同時使用 -P 隨機端口映射 | -p | 指定端口映射,有以下四種格式 ip:hostPort:containerPort ip::containerPort hostPort:containerPort containerPort |
-
-
啟動交互式容器
-
#使用鏡像centos:latest以交互模式啟動一個容器,在容器內執行/bin/bash命令。(/bin/bash為默認的,可以不寫)
-
-
啟動守護式容器
docker run -d centos
問題:然後docker ps -a 進行查看, 會發現容器已經退出 很重要的要說明的一點: Docker容器後臺運行,就必須有一個前臺進程. 容器運行的命令如果不是那些一直掛起的命令(比如運行top,tail),就是會自動退出的。
這個是docker的機制問題,比如你的web容器,我們以nginx為例,正常情況下,我們配置啟動服務只需要啟動響應的service即可。例如 service nginx start 但是,這樣做,nginx為後臺進程模式運行,就導致docker前臺沒有運行的應用, 這樣的容器後臺啟動後,會立即自殺因為他覺得他沒事可做了. 所以,最佳的解決方案是,將你要運行的程序以前臺進程的形式運行
-
列出當前所有正在運行的容器 docker ps [OPTIONS]
-
OPTIONS說明(常用):
-a :列出當前所有正在運行的容器+歷史上運行過的 -l :顯示最近創建的容器。 -n:顯示最近n個創建的容器。 -q :靜默模式,只顯示容器編號。 --no-trunc :不截斷輸出。OPTIONS說明(常用):
-
-
退出容器
-
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 刪除多個
-
-
查看容器的日誌 docker logs -f -t --tail 容器ID
-
-t 是加入時間戳
-
-f 跟隨最新的日誌打印
-
--tail 數字 顯示最後多少條
啟動守護式容器,以2秒運行一次引號以內的語句(ctrl + c 查看日誌退出,容器停止運行)
-
-
查看容器內運行的進程 docker top 容器ID
-
查看容器內部細節 docker inspect 容器ID
-
進入正在運行的容器並以命令行交互
-
docker exec -it 容器ID /bin/bash
-
docker attach 容器ID 重新進入
倆個的區別:
attach 直接進入容器啟動命令的終端,不會啟動新的進程
exec 是在容器中打開新的終端,並且可以啟動新的進程
-
-
從容器內拷貝文件到主機上 docker cp 容器ID:容器內路徑 目的主機路徑
本人目前也是處於學習階段,如果有任何問題都可以給我評論留言
Docker 學習 (2): 常用命令