Docker常用的終端命令

2021-10-09 11:30:48 字數 4237 閱讀 7555

幫助命令

docker version

docker info

docker --help

映象命令
列出本地主機上的映象:

docker images

各個選項說明:

repository:表示映象的倉庫源

tag: 映象的標籤

image id: 映象id

created: 映象建立時間

size: 映象大小

同一倉庫源可以有多個 tag,代表這個倉庫源的不同個版本,我們使用 repository:tag 來定義不同的映象。

-a:列出本地所有的映象(含中間映像層)

-q:只顯示映象id

--digests:顯示映象的摘要資訊

--no-trunc:顯示完整的映象資訊

docker search 某個映象名字

查詢映象
docker search 某個映象名字

docker search [options]映象名

options說明

--no-trunc : 顯示完整的映象描述

-s : 列出收藏數不小於指定值的映象

--automated:只列出automated build型別的映象

docker pull 映象名字[:tag]
刪除映象
docker rmi  某個映象名字或者id

刪除單個映象

docker rmi -f 映象id

刪除多個映象

docker rmi -f 映象名1:tag 映象名2:tag

刪除全部映象

docker rmi -f $(docker images -qa) 注意:-f後面要有空格

重啟docker
systemctl start docker
容器命令
只有映象有了才可以建立容器,這是前提

docker pull centos

新建並啟動容器
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:6.8以互動模式啟動乙個容器,在容器內執行/bin/bash命令。

docker run -it centos::6.8 /bin/bash

列出當前所有正在執行的容器
docker ps [options]

options說明(常用):

-a :列出當前所有正在執行的容器+歷史上執行過的

-l :顯示最近建立的容器。

-n:顯示最近n個建立的容器。

-q :靜默模式,只顯示容器編號。

--no-trunc :不截斷輸出。

進入正在執行的容器並以命令列互動
docker exec -it 容器id /bin/bash

重新進入docker attach 容器id

上述兩種方式的區別

attach 直接進入容器啟動命令的終端,不會啟動新的程序

exec 是在容器中開啟新的終端,並且可以啟動新的程序

退出容器(兩種方式)
容器停止執行並且退出

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 run -d  容器名

使用映象centos:latest以後臺模式啟動乙個容器

docker run -d centos

問題:然後docker ps -a 進行檢視, 會發現容器已經退出

很重要的要說明的一點: docker容器後台執行,就必須有乙個前台程序.

容器執行的命令如果不是那些一直掛起的命令(比如執行top,tail),就是會自動退出的。

這個是docker的機制問題,比如你的web容器,我們以nginx為例,正常情況下,我們配置啟動服務只需要啟動響應的service即可。例如

service nginx start

但是,這樣做,nginx為後台程序模式執行,就導致docker前台沒有執行的應用, 這樣的容器後台啟動後,會立即自殺因為他覺得他沒事可做了.所以,最佳的解決方案是,將你要執行的程式以前臺程序的形式執行

檢視容器日誌
docker logs -tf --tail 容器id

docker run -d centos:6.8 /bin/sh -c "while true;do echo hello zzyy;sleep 2;done"

-t 是加入時間戳

-f 跟隨最新的日誌列印

--tail 數字 顯示最後多少條

檢視容器內部執行的程序
docker top 容器id
檢視容器內部細節
docker inspect 容器id
從容器內拷貝檔案到主機上
docker cp 容器id : 容器內路徑 目的主機路徑
常用命令
list images                     列出系統當前映象

create a new container 建立乙個新的容器,同 run,但不啟動容器

docker 映象commit操作補充
docker commit 提交到容器副本使之成為乙個新的映象

docker commit -m="提交的描述資訊" -a="作者" 容器id 要建立的目標映象名:[tag]

docker run -it -p 8080:8080 tomcat

-p 主機埠:docker 容器埠

-p(大寫) 隨機分配埠

i : 互動

t : 終端

容器間的繼承和資料共享
docker run -it -v /宿主機目錄:/容器內目錄 centos /bin/bash

docker run -it -v /宿主機絕對路徑目錄:/容器內目錄 映象名

檢視資料卷是否掛載成功

docker inspect 容器id

docker run -it -p 8080:8080 tomcat

-p 主機埠:docker 容器埠

-p(大寫) 隨機分配埠

i : 互動

t : 終端

常用終端命令

目錄操作 命令名 功能描述 使用舉例 mkdir 建立乙個目錄 mkdir dirname rmdir 刪除乙個目錄 rmdir dirname mvdir 移動或重新命名乙個目錄 mvdir dir1 dir2 cd 改變當前目錄 cd dirname pwd 顯示當前目錄的路徑名 pwd ls ...

常用的Linux終端命令

linux終端命令常常用來操作伺服器,客戶端通過軟體遠端連線伺服器,對伺服器發號施令。終端命令大概有200多個,但是常用的就幾個,比如以下 1 ls a 顯示隱藏檔案 顯示當前資料夾下的內容 2 cd 檔名 file 切換到 file資料夾下 切換到上級目錄 3 pwd 顯示當前所在資料夾 4 mk...

Linux常用的終端命令

用來瀏覽檔案系統的主要命令是cd change directory 在cd命令後面,你必須規定你要切換到的目錄。例 cd 進入根目錄 命令ls list 展示當前目錄下的所有檔案和目錄。同時,你可以在ls命令後使用萬用字元 號縮小展示的內容範圍,比如 ls p 展示當前目錄下所有p開頭的檔案和目錄 ...