docker的常用命令詳解
前言
本篇文章不僅僅是生硬的命令大全,也是我個人對docker學(xué)習(xí)使用的一步步總結(jié),通過一個個示例來加深各位看官對docker相關(guān)命令的理解以及記憶,在有趣的同時穿插知識點,您花費半小時時間,照著我的思路走一遍,一定會有所收獲。
docker常用命令
列舉常用的命令,不常用的已省略。
1 啟停類/幫助 命令
- 啟動docker: systemctl start docker
- 停止docker: systemctl stop docker
- 重啟docker: systemctl restart docker
- 查看docker狀態(tài): systemctl status docker
- 開機啟動: systemctl enable docker
- 查看docker概要信息: docker info
- 查看docker總體幫助文檔: docker --help
- 查看docker命令幫助文檔: docker 具體命令 --help
2鏡像命令
- 列出本地主機上的鏡像: docker images
同一倉庫源可以有多個 TAG版本,代表這個倉庫源的不同個版本,我們使用 REPOSITORY:TAG 來定義不同的鏡像。
如果你不指定一個鏡像的版本標簽,例如你只使用 ubuntu,docker 將默認使用 ubuntu:latest 鏡像
- 搜索鏡像: docker search [OPTIONS] 鏡像名字
OPTIONS說明:
–limit : 只列出N個鏡像,默認25個
如docker search --limit 5 redis
- 下載鏡像: docker pull 鏡像名稱[:TAG] #沒有TAG就是最新版
- 查看鏡像/容器/數(shù)據(jù)卷所占的空間: docker system df
- 刪除鏡像: docker rmi 鏡像ID
刪除單個
docker rmi -f 鏡像ID
刪除多個docker rmi -f 鏡像名1:TAG 鏡像名2:TAG
刪除全部
docker rmi -f $(docker images -qa)
面試知識點:什么docker虛懸鏡像?
答:倉庫名、標簽都是<none>的鏡像,俗稱虛懸鏡像dangling image
3 容器命令
- 有鏡像才能有容器,這里假設(shè)已通過
docker pull ubuntu命令下載了ubuntu鏡像,后面的命令介紹基于此鏡像。 - 新建并啟動容器:
docker run [OPTIONS] ***IMAGE*** [COMMAND] [ARG...]
OPTIONS說明(常用):有些是一個減號(短杠),有些是兩個減號
–name=“容器新名字” 為容器指定一個名稱;
-d: 后臺運行容器并返回容器ID,也即啟動守護式容器(后臺運行);
-i:以交互模式運行容器,通常與 -t 同時使用;
-t:為容器重新分配一個偽輸入終端tty,通常與 -i 同時使用;
也即啟動交互式容器(前臺有偽終端,等待交互);
- 啟動交互式容器(前臺命令行)
#使用鏡像centos:latest以交互模式啟動一個容器,在容器內(nèi)執(zhí)行/bin/bash命令。
docker run -it centos /bin/bash
說明:/bin/bash:放在鏡像名后的是命令,這里我們希望有個交互式 Shell,因此用的是 /bin/bash。
- 列出當前所有正在運行的容器:
docker ps - 退出容器
·兩種退出方式
·run進去容器,exit退出,容器停止
·run進去容器,ctrl+p+q退出,容器不停止
- 容器啟停
docker start 容器ID或者容器名
docker restart 容器ID或者容器名
docker stop 容器ID或者容器名
- 刪除容器
刪除已停止的容器
docker rm 容器ID
一次性刪除多個容器實例docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm
- 啟動守護式容器(后臺服務(wù)端運行) docker run -d 容器名
好習(xí)慣:每次運行容器之后通過docker ps看一下容器是否啟動成功了
問題:docker run -d centos啟動centos守護容器,然后docker ps -a 進行查看, 會發(fā)現(xiàn)容器已經(jīng)退出?
說明: 有的Docker容器后臺運行,就必須有一個前臺進程.容器運行的命令如果不是那些一直掛起的命令(比如運行top,tail),就是會自動退出的。
這個是docker的機制問題,最佳的解決方案是,將你要運行的程序以前臺進程的形式運行,常見就是命令行模式,表示我還有交互操作,別中斷。
如后臺運行nginx命令:
docker run -di --name=nginx -p 80:80 nginx
- 9. 查看容器日志:docker logs 容器ID
查看容器內(nèi)部細節(jié),返回JSON格式數(shù)據(jù):docker inspect 容器ID
- 10. 退出容器后重新進入(進入正在運行的容器并以命令行交互):
docker exec -it 容器ID /bin/bash
docker attach 容器ID 不推薦
上述兩個容器進入命令exec和attach的區(qū)別:
- attach 直接進入容器啟動命令的終端,不會啟動新的進程,用exit退出,會導(dǎo)致容器的停止。
- exec 是在容器中打開新的終端,并且可以啟動新的進程 用exit退出,不會導(dǎo)致容器的停止。
推薦大家使用 docker exec 命令,因為退出容器終端,不會導(dǎo)致容器的停止。
- 11. 從容器內(nèi)拷貝文件到主機上: docker cp 容器ID:容器內(nèi)路徑 目的主機路徑
- 12. 導(dǎo)入導(dǎo)出容器
- export 導(dǎo)出容器的內(nèi)容留作為一個tar歸檔文件[對應(yīng)import命令]
- import 從tar包中的內(nèi)容創(chuàng)建一個新的文件系統(tǒng)再導(dǎo)入為鏡像[對應(yīng)export]
案例
docker export 容器ID > 文件名.tar
cat 文件名.tar | docker import - 鏡像用戶/鏡像名:鏡像版本號
結(jié)語
一個人可以走很快,但是一群人可以走更遠,大家一起抱團學(xué)習(xí)啊。
到此這篇關(guān)于docker的常用命令詳解的文章就介紹到這了,更多相關(guān)docker常用命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Ubuntu 下通過 Docker 部署 NGINX 服務(wù)器的步驟詳解
今天分享如何在三豐云免費服務(wù)器上使用Docker部署NGINX服務(wù)器,Docker容器化平臺提升應(yīng)用可移植性,NGINX作為高性能HTTP和反向代理服務(wù)器,感興趣的朋友跟隨小編一起看看吧2025-02-02
Docker啟動失敗報錯Failed?to?start?Docker?Application?Containe
最近在啟動Docker的時候發(fā)現(xiàn)了個錯誤,所以下面這篇文章主要給大家介紹了關(guān)于Docker啟動失敗報錯Failed?to?start?Docker?Application?Container?Engine的解決辦法,需要的朋友可以參考下2022-08-08
使用Docker構(gòu)建企業(yè)級自定義鏡像的方法
這篇文章主要介紹了使用Docker構(gòu)建企業(yè)級自定義鏡像的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
Docker部署ElasticSearch和ElasticSearch-Head的實現(xiàn)
這篇文章主要介紹了Docker部署ElasticSearch和ElasticSearch-Head的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12

