從事數(shù)據(jù)科學(xué)項(xiàng)目總是令人興奮的。然而,其中也不乏挑戰(zhàn)。每個(gè)項(xiàng)目都需要安裝(可能是)一長(zhǎng)串的庫(kù),以及每個(gè)庫(kù)可能需要特定的版本。因此,要想弄清項(xiàng)目的依賴(lài)關(guān)系可能相當(dāng)具有挑戰(zhàn)性。這就是Docker可以提供幫助的地方。
Docker是一種流行的容器化技術(shù)。使用Docker可以將數(shù)據(jù)科學(xué)應(yīng)用程序連同代碼和所需的依賴(lài)關(guān)系打包成一個(gè)名為鏡像的便攜式工件。因此,Docker可以簡(jiǎn)化開(kāi)發(fā)環(huán)境的復(fù)制,并使本地開(kāi)發(fā)變得輕松。
以下是一些必備的Docker命令列表,這些命令將在你下一個(gè)項(xiàng)目的編碼過(guò)程中非常有用。本文將使用Docker Hub上的鏡像,這是一個(gè)最受歡迎的平臺(tái),用于查找、分享和管理容器鏡像。
【Docker Hub】:https://hub.docker.com/
1. docker pull
要從Docker Hub上拉取鏡像,可以運(yùn)行如下所示docker pull
命令:
docker pull <name-of-the-image>
例如,要從Docker Hub上拉取Python/ target=_blank class=infotextkey>Python鏡像,可以運(yùn)行以下命令:
docker pull python
![]()
默認(rèn)情況下,此命令將拉取可用的最新版本的鏡像。還可以選擇添加標(biāo)簽以拉取特定版本的鏡像。
注意:如果想以無(wú)超級(jí)用戶(hù)權(quán)限的用戶(hù)身份運(yùn)行Docker命令,請(qǐng)創(chuàng)建docker組并將用戶(hù)添加到該組。
2. docker images
要查看所有已下載的鏡像列表,可以運(yùn)行docker images
命令。
docker images
![]()
3. docker run
可以使用docker run
命令從已下載的鏡像啟動(dòng)容器。在從注冊(cè)表中拉取鏡像后,就可以啟動(dòng)一個(gè)Docker容器,即鏡像的運(yùn)行實(shí)例,如下所示:
docker run <name-of-the-image>
docker run [options] <name-of-the-image>
例如,可以使用-i
選項(xiàng)在啟動(dòng)容器的同時(shí)啟動(dòng)交互式Python REPL,而-t
選項(xiàng)會(huì)指定一個(gè)偽tty
,如下所示:
鏡像是一個(gè)便攜式工件,而容器則是鏡像的運(yùn)行實(shí)例。這意味著可以通過(guò)單個(gè)Docker鏡像運(yùn)行多個(gè)容器。
4. docker ps
可以運(yùn)行docker ps
命令以獲取所有正在運(yùn)行的容器的列表。
docker ps
![]()
請(qǐng)注意,每個(gè)Docker容器都有一個(gè)與之關(guān)聯(lián)的CONTAINER ID
。在接下來(lái)的幾分鐘里,我們將學(xué)習(xí)Docker命令來(lái)停止和重啟容器、檢查日志等。在這些命令中將使用特定容器的CONTAINER ID
。
假設(shè)在之前的某個(gè)會(huì)話(huà)中運(yùn)行了一個(gè)容器,而該容器已不再運(yùn)行。在這種情況下,可以運(yùn)行帶有-a
選項(xiàng)的docker ps
命令。這會(huì)列出所有容器:當(dāng)前正在運(yùn)行的容器以及之前停止運(yùn)行的容器。
docker ps -a
5. docker stop
有時(shí)可能需要停止正在運(yùn)行的容器。要停止容器,請(qǐng)運(yùn)行docker stop
命令。
docker stop <CONTAINER ID>
6. docker start
可以使用docker start
命令來(lái)重新啟動(dòng)先前停止的容器。可以運(yùn)行docker ps -a
命令,獲取容器ID,然后在 docker start
命令中使用該ID來(lái)重新啟動(dòng)容器。
docker start <CONTAINER ID>
7. docker rmi
要?jiǎng)h除特定的鏡像,可以運(yùn)行docker rmi
命令。
docker rmi <name-of-the-image>
運(yùn)行此命令將從本地開(kāi)發(fā)環(huán)境中刪除該鏡像。下次想要從該鏡像啟動(dòng)容器時(shí),將需要從DockerHub上拉取該鏡像。
8. docker rm
要永久從開(kāi)發(fā)環(huán)境中刪除容器,可以運(yùn)行docker rm
命令。但是,在嘗試刪除容器之前,建議確保容器已停止運(yùn)行。
docker rm <CONTAINER ID>
9. docker logs
在調(diào)試容器時(shí),docker logs
命令尤其有用。
docker logs <CONTAINER ID>
![]()
10. docker exec
使用docker exec
命令,可以在正在運(yùn)行的容器內(nèi)執(zhí)行命令。
docker exec <CONTAINER ID> <COMMAND> <ARGS>
自行嘗試:作為總結(jié)所學(xué)知識(shí)的快速練習(xí),從Docker Hub上獲取官方Bash映像。接下來(lái),在啟動(dòng)容器時(shí)嘗試啟動(dòng)一個(gè)交互式終端會(huì)話(huà),并運(yùn)行一個(gè)基本的Bash命令。
【官方Bash映像】:https://hub.docker.com/_/bash
11. docker version
要檢查工作環(huán)境中安裝的Docker版本,請(qǐng)運(yùn)行docker version
命令:
docker version
![]()
12. docker info
docker info
命令提供了有關(guān)Docker系統(tǒng)范圍安裝的更詳細(xì)信息。
docker info

結(jié)論
希望這篇關(guān)于必備Docker命令的教程對(duì)你有所幫助。一旦熟悉了Docker,可以嘗試將Python和數(shù)據(jù)科學(xué)應(yīng)用程序進(jìn)行Docker化。然后可以將應(yīng)用程序的鏡像推送到Docker Hub。其他開(kāi)發(fā)人員將能夠通過(guò)單個(gè)命令拉取你的鏡像并在他們的工作環(huán)境中啟動(dòng)容器。