讓你快速入門docker的30個命令行


容器管理

容器,就是Linux被嚴格限制資源約束(cgroups),安全約束(Unix權限,capabilities,SELinux,AppArmor,seccomp等)和命名空間(PID,網絡,mount,等等)限制出來的應用。docker是最常見的一種容器技術,Docker由Docker daemon(監聽程序)、Docker鏡像(層)和Docker存儲(卷)和Docker網絡的構成。一個容器就是指由docker運行時基於docker鏡像創建的一個docker實例。

創建容器

要創建一個容器,使用create命令, [鏡像名]替換為需要運行的鏡像的名稱。

docker create [鏡像名]

當按下enter按鍵時,Docker默認會本地鏡像庫中搜索,如果沒有,會去訪問Docker Hub中搜索該鏡像,其下載本地系統並創建一個停止的容器。

比如,我們創建一個golang容器。

創建和運行容器

要創建和運行容器,請使用run命令,[鏡像名]替換為需要運行的鏡像的名稱將。該命令會從本地、Docker Hub中搜索指定的鏡像,並下載到本地,創建一個容器並啟動該容器。

docker run [鏡像名]

啟動停止的容器

要在啟動的一個容器(已停止),可以運行start命令。start命令后可以使用 [容器名]或容器ID替換。可以使用docker ps -a 查看本地容器列表(包括已停止的容器)。

docker start [容器名/ID]

停止容器

要停止一個運行中的容器,可以使用stop命令。容器停止后,可以用start命令將其啟動。

docker stop [容器名/ID]

重啟容器

要重啟一個容器,可以使用restart命令。命令可以將正在運行中的容器停止,然后再重新啟動。

docker restart [容器名/ID]

暫停容器

如果需要在正在運行的容器中臨時暫停該過程,可以使用pause命令。

docker pause [容器名/ID]

恢復暫停的容器

暫停容器后,可以使用unpause命令恢復已暫停的容器。

docker unpause [容器名/ID]

列出正在運行的容器

如果需要查看系統上正在運行的容器的列表,請運行以下命令。

docker ps 或者

docker container ls

上面的命令只會列出當前正在運行的容器,如果要列出本機所有的容器,可以使用:

docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

fc6da76218aa golang "bash" 2 minutes ago Created kind_shirley

刪除容器

刪除一個容器,可以使用rm命令。要刪除容器,請確保容器已經停止,否則會報錯。

docker rm [容器名/ID]

卸載容器

為了系統中刪除一個容器,可以運行以下命令。用要刪除的容器[容器名]的名稱或ID替換。

docker rm [容器名/ID]

容器操作

如果要對容器執行操作,有兩種方法,分別是exec命令和attach命令。

exec命令,用來在運行的容器中執行命令,比如

docker exec -it [容器名/ID] /bin/bash

會打開一個偽終端,可以在終端中執行命令。

attach命令,用來連接到正在運行中的容器:

docker attach --sig-proxy=false [容器名/ID]

attach到容器后,Ctrl+C可以退出,但是退出時,容器也會停止,為了退出時不影響容器運行,可以使用--sig-proxy=false參數,這樣ctrl+C[D]后容器會繼續運行。

查看容器日志

要查看當前容器的執行情況,需要查看容器日志。可以用attach到容器,可直接查看。當然更常用的方法是用logs命令

docker logs [容器名/ID]

logs 可以附帶一些參數:

-f: 表示實時打印容器日志,想象為tail -f

--since 日期:表示打印制定日期以來的日志。

--tail N數字:表示打印最后N條日志,想象為tail -n

查看容器的配置

容器的所有配置信息實際上是一個json文件,可以使用inspect命令,查看該容器的所有信息。

docker inspect [容器名/ID]

鏡像管理

容器鏡像是包含Docker容器的操作系統,應用程序和初始狀態的文件。可以從Dockerfiles構建,也可以用已經運行的容器創建。

在docker中,鏡像是一個標准的Tar包,包中包含了:

Rootfs:容器上像操作系統的標准根(/)的目錄。例如,帶有/usr,/var,/home等的目錄。

JSON文件:用來指定如何運行rootfs。例如,容器啟動時在rootfs中運行的命令或入口點;為容器設置的環境變量;容器的工作目錄;和其他一設置。

基於rootfs,其上面的json可以是互相依賴的,這樣就把docker鏡像分成了一個個的層:

以Dockerfile構建鏡像

甲dockerfile是docker用來創建並建立一個容器的鏡像的命令的列表。可以通過運行以下命令從dockerfile構建鏡像。

docker build -f [dockerfile路徑]

從容器構建鏡像

還可以從正在運行的容器為基礎構建鏡像。這也是快速備份正容器的快照的方法。

docker commit [容器名] [鏡像名]

從Docker Hub拉取鏡像

可使用以下命令將鏡像從Docker Hub下載到本地系統。

docker image pull [鏡像名]

將鏡像推送到Docker Hub

將容器鏡像推送到Docker Hub之前,必須在Docker Hub上創建一個帳戶,然后在終端登錄,在終端中運行docker login命令:

docker login

然后按要求輸入用戶名和密碼。認證成功后,可以使用以下命令將鏡像推送到Docker Hub。

docker image push [鏡像名]

列出容器鏡像

如果需要查看系統上的鏡像列表,請運行以下命令:

docker image ls

或者直接用

docker image

從系統中刪除鏡像

如果要從系統中刪除鏡像,請使用remove命令。

docker image remove [鏡像名]

卷管理

通過docker run或docker create命令可以將默認的Docker Volumes附加到容器,這樣創建的數據在鏡像重建過程中保持不變。

創建Docker卷

要創建docker卷,可以對卷,使用create命令

docker volume create [卷名]

刪除Docker卷

運行rm命令以刪除Docker卷。請記住,如果刪除一個卷,則將刪除該卷中存儲的所有數據。

docker volume rm [卷名]

查看卷信息

有時需要查看有關創建的卷的各種詳細信息,可以對卷使用inspect命令

docker volume inspect [卷名]

列出所有Docker卷

如果需要查看系統上所有卷的列表,可以對卷使用ls命令

docker volume ls

網絡管理

Docker網絡決定了容器之間如何相互連接以及如何與Internet連接。可以為各種軟件應用程序堆棧創建專用網絡,以確保數據安全。

創建Docker網絡

docker network的create命令會在當前系統上創建一個橋接網絡,該橋接網絡將容器彼此連接並共享主機的網絡和Internet連接。

docker network create [網絡名]

將容器連接到網絡

為了將容器連接到新網絡,請使用connect命令。

docker network connect [網絡名] [容器名]

斷開容器與網絡的連接

要斷開容器與網絡的連接,請使用disconnect命令。

docker network disconnect [網絡名] [容器名]

查看網絡信息

如果需要檢查網絡上的詳細信息,可以對網絡使用inspect命令

docker network inspect [網絡名]

列出所有網絡

可對網絡使用ls命令,會列出系統上的所有的docker網絡信息。

docker network ls

刪除網絡

從系統中刪除網絡。,可以對網絡使用rm命令。

docker network rm [網絡名]

總結

本文,我們列出了常見的docker命令,如果你已經可以熟練的使用這些命令,則說明你docker技術已經入門。可以接下來進一步深入學習了,比如容器編排K8S集群等。

 

轉自:https://c.m.163.com/news/a/FBHKGCBU05461OTJ.html?spss=newsapp


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM