【Docker 系列】docker 學(xué)習(xí) 二传黄,Docker 的常用命令

【Docker 系列】docker 學(xué)習(xí) 二混滔,Docker 的常用命令

基本幫助命令

# 查看 docker 的基本版本信息
docker version

# 查看 docker 的系統(tǒng)信息贿条,如鏡像和容器數(shù)量
docker info

# 查看某個(gè)命令的幫助
docker xx命令 --help

咱們可以看官方的幫助文檔:https://docs.docker.com/reference/

image

鏡像命令

docker images 查看鏡像

Usage: docker images [OPTIONS] [REPOSITORY[:TAG]]

查看本機(jī)上的鏡像

# docker images
REPOSITORY        TAG       IMAGE ID       CREATED        SIZE
ubuntu            latest    1318b700e415   5 days ago     72.8MB
hello-world       latest    d1165f221234   4 months ago   13.3kB
關(guān)鍵字 解釋
REPOSITORY 倉庫源
TAG 鏡像標(biāo)簽
IMAGE ID 鏡像 ID
CREATED 創(chuàng)建時(shí)間
SIZE 鏡像大小

可選參數(shù):

Options:
  -a, --all             顯示所有的鏡像
  -q, --quiet           只顯示鏡像ID

docker search 搜索鏡像

搜索 redis 為例

# docker search redis
NAME                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
redis                            Redis is an open source key-value store that…   9734      [OK]
sameersbn/redis                                                                  83                   [OK]
grokzen/redis-cluster            Redis cluster 3.0, 3.2, 4.0, 5.0, 6.0, 6.2      78
rediscommander/redis-commander   Alpine image for redis-commander - Redis man…   63                   [OK]

加上參數(shù)

過濾 STARS 大于 2000 的 鏡像

# docker search redis -f STARS=2000
NAME      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
redis     Redis is an open source key-value store that…   9734      [OK]

我們也可以在 dockerhub 上面直接在頁面上搜索鏡像

image

搜索到的結(jié)果和使用命令搜索的結(jié)果一致

image

docker pull 下載鏡像

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

下載 redis 鏡像為例

# docker pull redis
Using default tag: latest           # 默認(rèn)拉最新版本
latest: Pulling from library/redis  # redis 的庫
33847f680f63: Pull complete         # 分層下載
26a746039521: Pull complete
18d87da94363: Pull complete
5e118a708802: Pull complete
ecf0dbe7c357: Pull complete
46f280ba52da: Pull complete
Digest: sha256:cd0c68c5479f2db4b9e2c5fbfdb7a8acb77625322dd5b474578515422d3ddb59                                 # 簽名
Status: Downloaded newer image for redis:latest
docker.io/library/redis:latest      # redis 真實(shí)下載地址

因此上述的下載操作
docker pull redis 與 docker pull docker.io/library/redis:latest 一致

dockerhub 上面 可以查看到 redis 支持的版本

image

我們下載一個(gè) 6 版本的 redis

# docker pull redis:6
6: Pulling from library/redis
Digest: sha256:cd0c68c5479f2db4b9e2c5fbfdb7a8acb77625322dd5b474578515422d3ddb59
Status: Downloaded newer image for redis:6
docker.io/library/redis:6

可以看到 下載 版本 6 的 redis 的時(shí)候,沒有分層下載了乙墙,說明在上述看到的分層下載他們是共用的

查看剛才的安裝的鏡像

docker images
REPOSITORY        TAG       IMAGE ID       CREATED        SIZE
redis             6         aa4d65e670d6   8 days ago     105MB
redis             latest    aa4d65e670d6   8 days ago     105MB
hello-world       latest    d1165f221234   4 months ago   13.3kB

docker rmi 刪除鏡像

  • 刪除單個(gè)鏡像
docker rmi -f 容器ID
  • 刪除多個(gè)鏡像
docker rmi -f 容器ID 容器ID 容器ID 
  • 刪除全部鏡像
docker rmi -f $(docker images -q)

容器命令

容器是基于鏡像創(chuàng)建的益眉,我們來下載一個(gè) ubuntu 鏡像

docker pull ubuntu

docker run 新建并啟動(dòng)容器

docker run [參數(shù)] 鏡像名字 [指令] [參數(shù)]

常用參數(shù)說明:

--name="xxx"    # 運(yùn)行容器的名字
-d              # 后臺(tái)方式運(yùn)行
-it             # 交互的方式運(yùn)行
-p              # 指定容器的端口號(hào) 例如 -p 6379:6380
                常用的操作有 -p 主機(jī)端口:容器端口
-P              # 隨機(jī)指定端口號(hào)

啟動(dòng) 容器里面的 ubuntu段只,通過主機(jī)名字惜浅,我們已經(jīng)可以看出來主機(jī)切換了

root@iZuf66y3tuzn4wp3h02t7pZ:~# docker run -it ubuntu /bin/bash
root@87fb04e2a6e7:/#

退出容器

  • 鍵入 exit命令问欠,容器會(huì)退出
  • 使用快捷鍵 Ctrl + P + Q 俺榆,回到主機(jī)感昼,容器不會(huì)退出

docker ps 查看容器

docker ps [OPTIONS]

# docker ps -a
CONTAINER ID   IMAGE          COMMAND           CREATED          STATUS                      PORTS                     NAMES
73f951b70438   ubuntu         "/bin/bash"       2 minutes ago    Up 2 minutes                                          vigorous_buck
87fb04e2a6e7   ubuntu         "/bin/bash"       7 minutes ago    Exited (0) 3 minutes ago                              flamboyant_tu

可選參數(shù):

            # 查看正在運(yùn)行的容器
-a          # 查看運(yùn)行過的容器
-n=xx       # 查看運(yùn)行過的前 xx 個(gè)容器
-s          # 查看容器運(yùn)行的 大小
-q          # 查看容器 ID

docker rm 刪除容器

docker rm 容器ID      # 刪除未運(yùn)行的容器
docker rm -f 容器ID   # 強(qiáng)制刪除正在運(yùn)行的容器
docker rm -f $(docker ps -aq)       # 刪除所有容器
docker ps -aq | xargs docker rm     # 刪除所有容器

start,restart罐脊,stop定嗓,kill 開啟,重啟萍桌,停止宵溅,強(qiáng)制停止容器

docker start 容器ID
docker restart 容器ID
docker stop 容器ID
docker kill 容器ID

常用其他命令

docker run -d 后臺(tái)啟動(dòng)容器

# 后臺(tái)啟動(dòng)一個(gè) ubuntu
docker run -d ubuntu

# 查看 運(yùn)行的容器
docker ps 
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS     NAMES

發(fā)現(xiàn)沒有容器正在運(yùn)行

原因如下:

  • docker 后臺(tái)啟動(dòng)服務(wù),需要有一個(gè)前臺(tái)的進(jìn)程上炎,否則docker 發(fā)現(xiàn)沒有應(yīng)用恃逻,則會(huì)將該服務(wù)停止

我們主動(dòng)加一個(gè)前臺(tái)進(jìn)程,看看效果

# 臨時(shí)加上一個(gè)前臺(tái)進(jìn)程
docker run -d ubuntu /bin/bash -c "while true;do echo xiaozhupeiqi;sleep 2;done"

# 查看正在運(yùn)行的容器
docker ps
CONTAINER ID   IMAGE     COMMAND
10ba0e687434   ubuntu    "/bin/bash -c 'while…" 

可以看出藕施,docker ps 命令已經(jīng)可以查看到正在運(yùn)行的容器了辛块,OK

docker logs 查看日志

docker logs [參數(shù)] 容器ID

Options:
  -f        # 和輸出保持一致
  -n        # 輸出最近的幾行
  -t        # 打印時(shí)間戳

查看上述容器的日志

# docker logs -tf -n 5 10ba0e687434
2021-08-01T08:02:51.380512218Z xiaozhupeiqi
2021-08-01T08:02:53.381606198Z xiaozhupeiqi
2021-08-01T08:02:55.382780869Z xiaozhupeiqi
2021-08-01T08:02:57.383890580Z xiaozhupeiqi
2021-08-01T08:02:59.384977473Z xiaozhupeiqi
2021-08-01T08:03:01.386430484Z xiaozhupeiqi

docker top 查看容器中進(jìn)程信息

docker top 容器ID

# docker top 10ba0e68743
UID                 PID                 PPID        CMD
root                11101               11073       bin/bash -c while true;do echo xiaozhupeiqi;sleep 2;done
root                11504               11101

docker inspect 查看鏡像元數(shù)據(jù)

docker inspect 容器 ID

輸出信息中省略了大量信息

[
    {
        "Id": "10ba0e6874341b2e2f002c22613a71223ca981dc36df0d1ea4ed3bb5a7a6c58e",
        "Created": "2021-08-01T07:57:52.725305443Z",
        "Path": "/bin/bash",
        "Args": [
            "-c",
            "while true;do echo xiaozhupeiqi;sleep 2;done"
        ],
        "State": {
            ...
        },
       ...
        "GraphDriver": {
      ...
        },
        "Mounts": [],
        "Config": {
            "Hostname": "10ba0e687434",
            ...
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/bash",
                "-c",
                "while true;do echo xiaozhupeiqi;sleep 2;done"
            ],
            "Image": "ubuntu",
            ...
        },
        "NetworkSettings": {
            ...
                }
    }
]

docker exec 進(jìn)入當(dāng)前運(yùn)行的容器

docker exec [參數(shù)] 容器 ID 指令[指令的參數(shù)]

# docker exec -it 10ba0e687434 /bin/bash
root@10ba0e687434:/# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 08:04 ?        00:00:00 /bin/bash -c while true;do echo xiaozhupeiqi;sleep 2;done
root       922     0  0 08:34 pts/0    00:00:00 /bin/bash
root       963     0  0 08:35 pts/1    00:00:00 /bin/bash
root       972     1  0 08:35 ?        00:00:00 sleep 2
root       973   963  0 08:35 pts/1    00:00:00 ps -ef

docker attach 進(jìn)入容器中正在執(zhí)行的程序

docker attach 容器ID

docker attach 10ba0e687434

docker exec 和 docker attach 的區(qū)別

  • docker exec

進(jìn)入容器,會(huì)新開一個(gè)終端铅碍,可以正常操作

  • docker attach

進(jìn)入容器正在執(zhí)行的終端润绵,不會(huì)啟動(dòng)新的終端

docker cp 將容器內(nèi)文件拷貝到主機(jī)內(nèi)

docker cp 容器ID:容器文件路徑 主機(jī)路徑

# 進(jìn)入容器,在容器的/home 目錄下 建一個(gè)文件 xiaomotong.go
 docker exec -it 10ba0e687434 /bin/bash
 cd /home/
 touch xiaomotong.go
# Ctrl + P + Q 退出容器

# 將容器內(nèi)文件拷貝到主機(jī)內(nèi)
docker cp 10ba0e687434:/home/xiaomotong.go ./

docker stats 查看 docker 內(nèi)服務(wù)內(nèi)存狀態(tài)

# docker stats
CONTAINER ID   NAME          CPU %     MEM USAGE / LIMIT    MEM %     NET I/O           BLOCK I/O     PIDS
2772a4050157   nginx1        0.00%     3.02MiB / 1.946GiB   0.15%     25.8kB / 33.1kB   0B / 8.19kB   3
10ba0e687434   loving_bohr   0.00%     4.07MiB / 1.946GiB   0.20%     810B / 0B         1.95MB / 0B   5

總結(jié)

關(guān)于 docker 的命令還是非常的多胞谈,大家可以嘗試按照下面的圖梳理了一下常用的命令列表尘盼,便于查詢,如下圖片來源于網(wǎng)絡(luò)烦绳,僅供學(xué)習(xí)使用

image

參考資料:

docker docs

歡迎點(diǎn)贊卿捎,關(guān)注,收藏

朋友們径密,你的支持和鼓勵(lì)午阵,是我堅(jiān)持分享,提高質(zhì)量的動(dòng)力

image

好了享扔,本次就到這里

技術(shù)是開放的底桂,我們的心態(tài),更應(yīng)是開放的惧眠。擁抱變化籽懦,向陽而生,努力向前行氛魁。

我是小魔童哪吒暮顺,歡迎點(diǎn)贊關(guān)注收藏厅篓,下次見~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市捶码,隨后出現(xiàn)的幾起案子羽氮,更是在濱河造成了極大的恐慌,老刑警劉巖惫恼,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件乏苦,死亡現(xiàn)場離奇詭異,居然都是意外死亡尤筐,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進(jìn)店門洞就,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盆繁,“玉大人,你說我怎么就攤上這事旬蟋∮桶海” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵倾贰,是天一觀的道長冕碟。 經(jīng)常有香客問我,道長匆浙,這世上最難降的妖魔是什么安寺? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮首尼,結(jié)果婚禮上挑庶,老公的妹妹穿的比我還像新娘。我一直安慰自己软能,他們只是感情好迎捺,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著查排,像睡著了一般凳枝。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上跋核,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天岖瑰,我揣著相機(jī)與錄音,去河邊找鬼砂代。 笑死锭环,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的泊藕。 我是一名探鬼主播辅辩,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼难礼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了玫锋?” 一聲冷哼從身側(cè)響起蛾茉,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎撩鹿,沒想到半個(gè)月后谦炬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡节沦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年键思,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片甫贯。...
    茶點(diǎn)故事閱讀 40,001評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吼鳞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出叫搁,到底是詐尸還是另有隱情赔桌,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布渴逻,位于F島的核電站疾党,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏惨奕。R本人自食惡果不足惜雪位,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望梨撞。 院中可真熱鬧茧泪,春花似錦、人聲如沸聋袋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽幽勒。三九已至嗜侮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間啥容,已是汗流浹背锈颗。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留咪惠,地道東北人击吱。 一個(gè)月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像遥昧,于是被迫代替她去往敵國和親覆醇。 傳聞我的和親對象是個(gè)殘疾皇子朵纷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容