最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

從入門(mén)到實(shí)戰(zhàn)詳解Docker中的常用命令

 更新時(shí)間:2026年06月04日 08:52:39   作者:程序猿樂(lè)鍋  
本文是一份Docker入門(mén)命令手冊(cè),重點(diǎn)為大家介紹了鏡像和容器管理的常用操作,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

前言

剛開(kāi)始學(xué) Docker 的時(shí)候,最容易遇到的一個(gè)問(wèn)題就是:命令看著很多,但真正上手時(shí)總是記不住,或者一不小心就把鏡像和容器的命令混了。

我這兩天在整理自己練習(xí) Docker 命令時(shí)用到的內(nèi)容,順手把它改成一篇適合分享的學(xué)習(xí)筆記。本文不講太多抽象概念,重點(diǎn)放在平時(shí)最常用、最容易碰到的 Docker 命令上,同時(shí)補(bǔ)充一些實(shí)戰(zhàn)里很常見(jiàn)的報(bào)錯(cuò)和使用場(chǎng)景。

如果你也是剛接觸 Docker,這篇文章可以直接當(dāng)成一份入門(mén)命令手冊(cè)來(lái)看。

一、先搞清楚兩個(gè)核心概念

在記命令之前,先把兩個(gè)概念分清楚:

  • 鏡像(Image):可以理解成模板
  • 容器(Container):可以理解成鏡像運(yùn)行起來(lái)后的實(shí)例

說(shuō)得直白一點(diǎn):

  • docker images 是看“模板”
  • docker run 是用“模板”創(chuàng)建并啟動(dòng)“實(shí)例”
  • docker ps 是看“實(shí)例”現(xiàn)在有沒(méi)有在運(yùn)行

只要這層關(guān)系不亂,后面的命令就會(huì)順很多。

二、Docker 使用前的準(zhǔn)備命令

啟動(dòng) Docker 服務(wù)

systemctl start docker

這個(gè)命令不是 Docker 子命令,而是 Linux 系統(tǒng)命令。它的作用是啟動(dòng) Docker 服務(wù)。

如果 Docker 服務(wù)沒(méi)有啟動(dòng),你在執(zhí)行 docker images、docker ps 這類(lèi)命令時(shí),往往會(huì)看到下面這個(gè)錯(cuò)誤:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock

這個(gè)報(bào)錯(cuò)的重點(diǎn)不是命令寫(xiě)錯(cuò)了,而是 Docker 后臺(tái)服務(wù)沒(méi)起來(lái)。所以遇到這個(gè)錯(cuò)誤,優(yōu)先檢查 Docker 服務(wù)狀態(tài)。

三、鏡像相關(guān)的常用命令

鏡像相關(guān)命令建議放在前面記,因?yàn)楹芏嗖僮鞫家獜溺R像開(kāi)始。

1. 查看本地鏡像

docker images

作用:查看當(dāng)前機(jī)器上已經(jīng)下載好的鏡像。

常見(jiàn)輸出字段含義如下:

  • REPOSITORY:鏡像名
  • TAG:版本標(biāo)簽
  • IMAGE ID:鏡像 ID
  • CREATED:創(chuàng)建時(shí)間
  • SIZE:鏡像大小

比如下面這些都屬于鏡像名稱:

nginx:1.20.2
mysql:8
redis:7

這里要注意,鏡像名和版本之間用的是 :,不是 -。

2. 拉取鏡像

docker pull redis:7

作用:從 Docker 倉(cāng)庫(kù)把鏡像下載到本地。

如果本地沒(méi)有某個(gè)鏡像,直接 docker run 時(shí) Docker 也可能自動(dòng)去拉取,但在學(xué)習(xí)階段,我更建議先手動(dòng)執(zhí)行 docker pull,這樣思路更清晰。

3. 刪除本地鏡像

docker rmi nginx:1.20.2

作用:刪除本地鏡像。

這個(gè)命令一般在以下場(chǎng)景比較常見(jiàn):

  • 鏡像拉錯(cuò)版本了
  • 本地磁盤(pán)空間緊張
  • 需要清理不再使用的鏡像

4. 導(dǎo)出鏡像

docker save -o nginx-1.20.2.tar nginx:1.20.2

作用:把鏡像導(dǎo)出成一個(gè) tar 文件,便于備份或者拷貝到其他機(jī)器。

這個(gè)命令里有兩個(gè)容易出錯(cuò)的點(diǎn):

  • 子命令必須是 save
  • 鏡像名必須寫(xiě)成 鏡像名:標(biāo)簽

也就是說(shuō),下面這種寫(xiě)法是錯(cuò)的:

docker save -o nginx-1.20.2.tar nginx-1.20.2

錯(cuò)因就在于把 nginx:1.20.2 寫(xiě)成了 nginx-1.20.2。

5. 導(dǎo)入鏡像

docker load -i nginx-1.20.2.tar

作用:把之前導(dǎo)出的鏡像文件重新導(dǎo)入 Docker。

這個(gè)命令通常和 docker save 配套使用,尤其適合離線環(huán)境或者需要跨機(jī)器傳鏡像的場(chǎng)景。

四、容器相關(guān)的常用命令

相比鏡像,容器命令在日常使用中更高頻,因?yàn)槲覀兤綍r(shí)真正操作的大多是“運(yùn)行起來(lái)的容器”。

1. 創(chuàng)建并運(yùn)行容器

docker run nginx:1.20.2

作用:基于指定鏡像創(chuàng)建并啟動(dòng)一個(gè)容器。

如果你只寫(xiě):

docker run

那肯定會(huì)報(bào)錯(cuò),因?yàn)?run 后面至少要跟一個(gè)鏡像名。

2. 后臺(tái)運(yùn)行容器并指定名稱和端口

docker run -d --name nginx -p 80:80 nginx:1.20.2

這是非常常用的一條命令,建議重點(diǎn)記住。

參數(shù)說(shuō)明:

  • -d:后臺(tái)運(yùn)行
  • --name nginx:給容器起一個(gè)名字
  • -p 80:80:端口映射

其中端口映射格式是:

-p 宿主機(jī)端口:容器端口

也就是說(shuō),上面的 -p 80:80 表示訪問(wèn)宿主機(jī)的 80 端口,本質(zhì)上是在訪問(wèn)容器里的 80 端口。

3. 查看正在運(yùn)行的容器

docker ps

作用:查看當(dāng)前正在運(yùn)行的容器。

這個(gè)命令適合用來(lái)快速判斷:

  • 容器有沒(méi)有啟動(dòng)成功
  • 當(dāng)前有哪些容器正在跑
  • 容器暴露了哪些端口

4. 查看所有容器

docker ps -a

作用:查看所有容器,包括正在運(yùn)行的和已經(jīng)停止的。

這個(gè)命令特別實(shí)用。因?yàn)楹芏鄷r(shí)候不是容器“沒(méi)了”,而是容器“停了”。如果你只看 docker ps,可能會(huì)誤以為容器不存在。

5. 停止容器

docker stop nginx

作用:停止一個(gè)正在運(yùn)行的容器。

要注意,停止容器不代表刪除容器,它只是從“運(yùn)行中”變成了“已停止”。

6. 啟動(dòng)已停止的容器

docker start nginx

作用:重新啟動(dòng)一個(gè)已經(jīng)存在但當(dāng)前處于停止?fàn)顟B(tài)的容器。

這里很多初學(xué)者容易把 runstart 混掉,實(shí)際上它們的區(qū)別很清楚:

  • docker run:創(chuàng)建并啟動(dòng)容器
  • docker start:?jiǎn)?dòng)已有容器

7. 重啟容器

docker restart nginx

作用:重啟容器。

這個(gè)命令在修改配置、重載服務(wù)或者排查臨時(shí)問(wèn)題時(shí)很常見(jiàn),屬于日常維護(hù)中的高頻命令。

8. 查看容器日志

docker logs nginx

作用:查看容器運(yùn)行日志。

如果想持續(xù)跟蹤日志,可以這樣寫(xiě):

docker logs -f nginx

很多問(wèn)題,比如 Nginx 啟動(dòng)失敗、Spring Boot 容器報(bào)錯(cuò)、端口沖突等,第一時(shí)間都應(yīng)該先去看日志。

9. 進(jìn)入容器內(nèi)部

docker exec -it nginx bash

作用:進(jìn)入正在運(yùn)行的容器,并打開(kāi)一個(gè)交互式終端。

參數(shù)說(shuō)明:

  • exec:在容器內(nèi)執(zhí)行命令
  • -i:保持標(biāo)準(zhǔn)輸入開(kāi)啟
  • -t:分配終端
  • bash:進(jìn)入 bash 環(huán)境

不過(guò)并不是所有鏡像里都有 bash。如果沒(méi)有,可以改成:

docker exec -it nginx sh

這個(gè)命令在排查容器內(nèi)文件、查看配置、手動(dòng)測(cè)試服務(wù)時(shí)特別有用。

10. 查看容器詳細(xì)信息

docker inspect nginx

作用:查看容器的詳細(xì)配置。

常見(jiàn)能看到的信息包括:

  • 容器 IP
  • 端口映射
  • 掛載目錄
  • 啟動(dòng)參數(shù)
  • 網(wǎng)絡(luò)信息

如果你在查“容器到底映射到哪個(gè)端口了”“文件到底掛載到哪里了”,inspect 非常有幫助。

11. 宿主機(jī)和容器之間復(fù)制文件

docker cp nginx:/etc/nginx/nginx.conf .

作用:把容器里的文件復(fù)制到宿主機(jī)。

反過(guò)來(lái)也可以把宿主機(jī)文件復(fù)制進(jìn)容器,這在調(diào)試配置文件時(shí)很常見(jiàn)。

12. 查看資源占用

docker stats

作用:實(shí)時(shí)查看容器的 CPU、內(nèi)存、網(wǎng)絡(luò)等資源占用情況。

如果你發(fā)現(xiàn)某個(gè)容器特別卡,或者懷疑內(nèi)存吃得太多,可以先用這個(gè)命令看一眼。

13. 刪除容器

docker rm -f nginx

作用:強(qiáng)制刪除容器。

參數(shù)說(shuō)明:

  • rm:刪除容器
  • -f:如果容器還在運(yùn)行,就先停掉再刪除

這個(gè)命令適合做快速清理,但在正式環(huán)境里還是建議先確認(rèn)再刪,避免誤操作。

五、用一條主線把命令串起來(lái)

如果只是一條一條背命令,其實(shí)很容易忘。更好的方式是按操作流程去記:

1. 先確認(rèn) Docker 服務(wù)正常

systemctl start docker

2. 查看本地有沒(méi)有需要的鏡像

docker images

3. 如果沒(méi)有,就先拉取鏡像

docker pull nginx:1.20.2

4. 基于鏡像啟動(dòng)容器

docker run -d --name nginx -p 80:80 nginx:1.20.2

5. 查看容器是否正常運(yùn)行

docker ps
docker ps -a

6. 需要排錯(cuò)時(shí)看日志、進(jìn)容器

docker logs -f nginx
docker exec -it nginx bash

7. 需要暫停、恢復(fù)或重啟時(shí)執(zhí)行控制命令

docker stop nginx
docker start nginx
docker restart nginx

8. 最后做清理或者備份

docker rm -f nginx
docker save -o nginx.tar nginx:1.20.2
docker load -i nginx.tar

這樣記憶就不是一堆零散命令,而是一條完整的 Docker 使用流程。

六、初學(xué)者最容易踩的幾個(gè)坑

1. Docker 服務(wù)沒(méi)啟動(dòng)

錯(cuò)誤信息:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock

解決方式:

systemctl start docker

2. 命令拼寫(xiě)錯(cuò)誤

錯(cuò)誤寫(xiě)法:

docker iamges

正確寫(xiě)法:

docker images

這類(lèi)錯(cuò)誤看起來(lái)很小,但在剛開(kāi)始練命令的時(shí)候特別常見(jiàn)。

3. 把鏡像名和版本標(biāo)簽寫(xiě)錯(cuò)

錯(cuò)誤寫(xiě)法:

docker save -o nginx-1.20.2.tar nginx-1.20.2

正確寫(xiě)法:

docker save -o nginx-1.20.2.tar nginx:1.20.2

記住一點(diǎn)就行:鏡像版本前面用的是冒號(hào) :。

4. 少寫(xiě)了子命令

錯(cuò)誤寫(xiě)法:

docker -o nginx-1.20.2.tar nginx:1.20.2

正確寫(xiě)法:

docker save -o nginx-1.20.2.tar nginx:1.20.2

因?yàn)?-odocker save 的參數(shù),不是 docker 根命令的參數(shù)。

七、Docker 常用命令速記版

如果你是為了復(fù)習(xí)或者考試前快速過(guò)一遍,可以直接記下面這組:

systemctl start docker
docker images
docker pull nginx:1.20.2
docker run -d --name nginx -p 80:80 nginx:1.20.2
docker ps
docker ps -a
docker stop nginx
docker start nginx
docker restart nginx
docker logs -f nginx
docker exec -it nginx bash
docker inspect nginx
docker cp nginx:/etc/nginx/nginx.conf .
docker stats
docker rm -f nginx
docker rmi nginx:1.20.2
docker save -o nginx.tar nginx:1.20.2
docker load -i nginx.tar

八、結(jié)語(yǔ)

Docker 命令剛開(kāi)始看起來(lái)很多,但真正常用的其實(shí)就集中在幾類(lèi):

  • 鏡像管理
  • 容器創(chuàng)建與運(yùn)行
  • 容器狀態(tài)查看
  • 日志與排錯(cuò)
  • 清理與備份

我的建議是,不要只死記命令本身,而是按照“鏡像 -> 容器 -> 查看狀態(tài) -> 進(jìn)入排查 -> 清理備份”這條主線去記。這樣學(xué)起來(lái)會(huì)更順,也更接近真實(shí)開(kāi)發(fā)和部署時(shí)的使用方式。

如果你剛開(kāi)始學(xué) Docker,可以先把本文里的 runps、logs、exec、rm 這幾條命令練熟,后面再補(bǔ) saveload、inspect、stats 這些命令,效果會(huì)更好。

以上就是從入門(mén)到實(shí)戰(zhàn)詳解Docker中的常用命令的詳細(xì)內(nèi)容,更多關(guān)于Docker常用命令的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Docker Push常見(jiàn)報(bào)錯(cuò)及解決方案總結(jié)

    Docker Push常見(jiàn)報(bào)錯(cuò)及解決方案總結(jié)

    這篇文章主要介紹了Docker Push常見(jiàn)報(bào)錯(cuò)及解決方案,包括HTTP響應(yīng)、insecure-registries配置、Registry使用HTTPS以及connection refused問(wèn)題的詳細(xì)分析和解決方法,需要的朋友可以參考下
    2026-03-03
  • Docker安裝部署RabbitMQ的實(shí)現(xiàn)步驟

    Docker安裝部署RabbitMQ的實(shí)現(xiàn)步驟

    RabbitMQ是一款開(kāi)源的消息隊(duì)列中間件,能夠在分布式系統(tǒng)中實(shí)現(xiàn)可靠的消息傳遞,本文主要介紹了Docker安裝部署RabbitMQ的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • 解決Docker刪除鏡像報(bào)錯(cuò):Error response from daemon:conflict:unable to delete xxx (cannot be forced)

    解決Docker刪除鏡像報(bào)錯(cuò):Error response from daemon:con

    刪除Docker鏡像時(shí)遇到?jīng)_突,因?yàn)殓R像正在被一個(gè)運(yùn)行中的容器使用,解決方法是先停止并刪除該容器,然后再嘗試刪除鏡像,此外,還可以選擇強(qiáng)制刪除鏡像,但這可能會(huì)導(dǎo)致數(shù)據(jù)丟失
    2024-11-11
  • docker如何運(yùn)行一個(gè)python腳本

    docker如何運(yùn)行一個(gè)python腳本

    這篇文章主要介紹了docker如何運(yùn)行一個(gè)python腳本問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Docker學(xué)習(xí)筆記之Docker部署Java web系統(tǒng)

    Docker學(xué)習(xí)筆記之Docker部署Java web系統(tǒng)

    這篇文章主要介紹了Docker學(xué)習(xí)筆記之Docker部署Java web系統(tǒng),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • Docker跨主機(jī)容器通信overlay實(shí)現(xiàn)過(guò)程詳解

    Docker跨主機(jī)容器通信overlay實(shí)現(xiàn)過(guò)程詳解

    這篇文章主要介紹了Docker跨主機(jī)容器通信overlay實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Docker動(dòng)態(tài)添加端口不需要重新建立鏡像的方法

    Docker動(dòng)態(tài)添加端口不需要重新建立鏡像的方法

    Docker容器在運(yùn)行期間有時(shí)可能會(huì)需要修改或者添加暴露的端口,但是有時(shí)候運(yùn)行的容器又不想再另外建立一個(gè)新的鏡像。接下來(lái)通過(guò)本文給大家分享Docker動(dòng)態(tài)添加端口不需要重新建立鏡像的方法,感興趣的朋友一起看看吧
    2019-07-07
  • Docker報(bào)錯(cuò)denied:requested access to the resource is denied解決

    Docker報(bào)錯(cuò)denied:requested access to the r

    這篇文章主要為大家介紹了Docker報(bào)錯(cuò)denied:requested access to the resource is denied解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Docker部署Minio集群的實(shí)現(xiàn)步驟

    Docker部署Minio集群的實(shí)現(xiàn)步驟

    本文介紹 Docker Compose 部署 Minio 集群的方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2026-05-05
  • MacBookPro下docker的安裝與使用教程

    MacBookPro下docker的安裝與使用教程

    Windows與Linux下關(guān)于docker的安裝使用方法有很多,今天小編這里給大家分享的是MacOS下docker的安裝與簡(jiǎn)單使用案例,非常簡(jiǎn)單,給有需要的小伙伴參考下
    2017-03-03

最新評(píng)論

老河口市| 辉南县| 方山县| 南郑县| 莱芜市| 嵊泗县| 临夏县| 来宾市| 浙江省| 阳泉市| 葫芦岛市| 凯里市| 久治县| 东城区| 肇州县| 洞头县| 潜山县| 德惠市| 正定县| 博客| 体育| 吴堡县| 白河县| 新闻| 乐山市| 平塘县| 武乡县| 油尖旺区| 天水市| 泰兴市| 永仁县| 遂昌县| 平陆县| 长寿区| 鄂托克前旗| 万山特区| 蕉岭县| 临泉县| 昌黎县| 秭归县| 泰顺县|