1. 程式人生 > 其它 >Docker系列(二)之Docker常用命令

Docker系列(二)之Docker常用命令

技術標籤:Docker

參考連結(必看):https://blog.csdn.net/DDDDeng_/article/details/108421269?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control

一、幫助命令

docker version #顯示docker

的版本資訊。
docker info #顯示docker的系統資訊,包括映象和容器的數量
docker 命令 --help #幫助命令
#幫助文件的地址:
https://docs.docker.com/engine/reference/commandline/build/

二、映象命令

docker images #檢視所有本地主機上的映象 可以使用docker image ls代替
docker search 搜尋映象
docker pull 下載映象

docker rmi 刪除映象

docker images #檢視所有本地的主機上的映象
docker images -aq #顯示所有映象的id

docker pull

下載映象

# 下載映象 docker pull 映象名[:tag]
➜	~ docker pull tomcat:8
8: Pulling from library/tomcat #如果不寫tag,預設就是latest
90fe46dd8199: Already exists	#分層下載: docker image 的核心 聯合檔案系統
35a4f1977689: Already exists bbc37f14aded: Already exists 74e27dc593d4: Already exists 93a01fbfad7f: Already exists 1478df405869: Pull complete 64f0dd11682b: Pull complete 68ff4e050d11: Pull complete f576086003cf: Pull complete 3b72593ce10e: Pull complete
Digest:   sha256:0c6234e7ec9d10ab32c06423ab829b32e3183ba5bf2620ee66de866df640a027
# 簽名 防偽
Status: Downloaded newer image for tomcat:8 docker.io/library/tomcat:8 #真實地址

#等價於
docker pull tomcat:8
docker pull docker.io/library/tomcat:8

docker rmi 刪除映象

~ docker rmi -f 映象id #刪除指定的映象
➜ ~ docker rmi -f
映象id 映象id 映象id 映象id #刪除指定的映象
➜ ~ docker rmi -f $(docker images -aq) #
刪除全部的映象

三、容器命令

docker run 映象id #新建容器並啟動
docker
ps #列出所有執行的容器docker container list
docker rm容器id #刪除指定容器
docker
start 容器id #啟動容器
docker restart容器id #重啟容器
docker stop 容器id #停止當前正在執行的容器
docker kill 容器id #強制停止當前容器

新建容器並啟動

docker run [可選引數] image | docker container run [可選引數] image
#參書說明
--name="Name" 容器名字 tomcat01 tomcat02 用來區分容器
-d 後臺方式執行
-it 使用互動方式執行,進入容器檢視內容
-p 指定容器的埠 -p 8080(宿主機):8080(容器)
-p ip:主機埠:容器埠
-p 主機埠:容器埠(常用)
-p 容器埠容器埠
-P(大寫) 隨機指定埠

列出所有執行的容器

#docker ps命令 #列出當前正在執行的容器
-a, --all Show all containers (default shows just running)
-n, --last int Show n last created containers (includes all states) (default -1)
-q, --quiet Only display numeric IDs

docker ps -aq #列出所有正在執行的容器的id

退出容器

exit #容器直接退出
ctrl +P +Q #容器不停止退出

刪除容器

docker rm 容器id #刪除指定的容器,不能刪除正在執行的容器,如果要強制刪除 rm -rf docker rm -f $(docker ps -aq) #刪除所有的容器
docker ps -a -q|xargs docker rm #刪除所有的容器

啟動和停止容器的操作

docker start 容器id #啟動容器
docker restart 容器id #重啟容器
docker stop 容器id #停止當前正在執行的容器
docker kill 容器id #強制停止當前容器

四、容器其他操作

後臺啟動命令

# 命令 docker run -d 映象名
➜ ~ docker run -d centos a8f922c255859622ac45ce3a535b7a0e8253329be4756ed6e32265d2dd2fac6c
➜ ~ docker
ps #未檢視到正在執行的容器

# 問題docker ps. 發現centos 停止了
# 常見的坑,
docker容器使用後臺執行,就必須要有要一個前臺程序,docker發現沒有應用,就會自動停止
# nginx,容器啟動後,發現自己沒有提供服務,就會立刻停止,就是沒有程式了

檢視日誌

#顯示日誌
-tf #顯示日誌資訊(一直更新)
--tail number #需要顯示日誌條數
docker logs -t --tail n 容器id #檢視n行日誌
docker logs -ft 容器id #跟著日誌

檢視容器中程序資訊 ps

docker top 容器id

檢視映象的元資料

# 命令
docker inspect 容器
id
#測試
➜ ~ docker inspect 55321bcae33d
[
{
"Id":
"55321bcae33d15da8280bcac1d2bc1141d213bcc8f8e792edfd832ff61ae5066", "Created": "2020-05-15T05:22:05.515909071Z",
"Path": "/bin/sh",
...
}]➜ ~

進入當前正在執行的容器

# 我們通常容器都是使用後臺方式執行的,需要進入容器,修改一些配置
# 命令 方式一

docker exec -it 容器id bashshell

# 方式二
docker attach 容器id
#測試
docker attach 55321bcae33d
正在執行當前的程式碼...
區別
#docker exec #進入當前容器後開啟一個新的終端,可以在裡面操作。(常用)
#docker attach # 進入容器正在執行的終端

從容器內拷貝到主機上

docker cp 容器id:容器內路徑 主機目的路徑