開發者必備丨Docker客戶端常用命令分享

原創 2020-03-13 13:24:00 Docker 命令

學習Docker,首先需要了解Docker基本概念,我們在以前的文章中介紹過docker的基本原理和部署操作系統。

今天講下嵌入式開發中docker客戶端常用的命令,開始進入“動手”階段(也就是敲Docker命令)。Docker命令較多,這里筆者總結下常用的Docker命令,方便小伙伴們查閱。

客戶端常用命令列表

以下為Docker 客戶端常用命令列表,可以通過docker COMMAND --help來查看這些命令的具體用法。

attach:依附到一個正在運行的容器中;

build :從一個Dockerfile創建一個鏡像;

commit:從一個容器的修改中創建一個新的鏡像;

cp:在容器和本地宿主系統之間復制文件中;

create:創建一個新容器,但并不運行它;

diff:檢查一個容器內文件系統的修改,包括修改和增加;

events:從服務端獲取實時的事件;

exec :在運行的容器內執行命令;

export:導出容器內容為一個tar包;

history:顯示一個鏡像的歷史信息;

images:列出存在的鏡像;

import:導入一個文件(典型為tar包)路徑或目錄來創建一個本地鏡像;

info:顯示一些相關的系統信息;

inspect:顯示一個容器的具體配置信息;

kill:關閉一個運行中的容器 (包括進程和所有相關資源);

load :從一個tar包中加載一個鏡像;

login :注冊或登錄到一個Docker的倉庫服務器;

logout :從Docker的倉庫服務器登出;

logs:獲取容器的log信息;

network:管理 Docker 的網絡,包括查看、創建、刪除、掛載、卸載等;

node:管理 swarm 集群中的節點,包括查看、更新、刪除、提升/取消管理節點等;

pause:暫停一個容器中的所有進程;

port :查找一個 nat 到一個私有網口的公共口;

ps :列出主機上的容器;

pull :從一個Docker的倉庫服務器下拉一個鏡像或倉庫;

push :將一個鏡像或者倉庫推送到一個 Docker 的注冊服務器;

rename:重命名一個容器;

restart:重啟一個運行中的容器;

rm :刪除給定的若干個容器;

rmi :刪除給定的若干個鏡像;

run :創建一個新容器,并在其中運行給定命令;

save :保存一個鏡像為 tar 包文件;

search:在 Docker index 中搜索一個鏡像;

service:管理 Docker 所啟動的應用服務,包括創建、更新、刪除等;

start :啟動一個容器;

stats :輸出(一個或多個)容器的資源使用統計信息;

stop :終止一個運行中的容器;

swarm:管理 Docker swarm 集群,包括創建、加入、退出、更新等;

tag:為一個鏡像打標簽;

top:查看一個容器中的正在運行的進程信息;

unpause:將一個容器內所有的進程從暫停狀態中恢復;

update:更新指定的若干容器的配置信息;

version:輸出 Docker 的版本信息;

volume:管理 Docker volume,包括查看、創建、刪除等;

wait :阻塞直到一個容器終止,然后輸出它的退出符。

兩張圖總結Docker的命令

Container事件狀態圖

Docker客戶端常用命令分享

Docker命令分布圖

Docker客戶端常用命令分享

常用操作及命令

常用鏡像操作

列出鏡像

docker images

刪除鏡像

docker rmi [-f] <IMAGE ID>或docker image rm [-f] <IMAGE ID>

其中-f代表強制刪除,用在多個容器對應一個鏡像時

給一個鏡像打標簽

docker tag

常用容器操作

列出主機上的容器

docker container ls [-a]

以某鏡像為基礎啟動并運行容器

docker run -itd --privileged=true --cap-add=SYS_ADMIN --mount type=bind,src=/data/home,target=/root/workspace -p 30000:22 <IMAGE ID> bin/bash

參數說明:

-i表示交互式,讓容器的標準輸入保持打開

-t表示讓docker分配一個偽終端并綁定到容器的標準輸入上

-d表示容器啟動會進入后臺運行

--privileged=true表示允許容器中運行一些特權命令

--cap-add=SYS_ADMIN表示提供給容器更大的管理權限

-v表示綁定掛載目錄

-p表示指定主機端口和容器內部端口映射關系

bin/bash表示因為docker后臺必須運行一個進程,否則容器就會退出。

重命名容器

docker rename old_name new_name進入后臺的容器(用此方法進入后,執行exit時不會導致容器的停止,還有個命令attach也可以進入后臺容器,但是exit會導致容器停止)

docker exec -it container_name bin/bash

終止容器

docker container stop

重新啟動終止狀態的容器

docker container start

終止一個運行態的容器然后重啟

docker container restart

刪除終止態容器

docker container rm container_name

刪除運行態容器

docker container rm -f container_name

清理所有終止態容器

docker container prune

查看容器的信息

docker inspect container_name

查看容器對應的主機端口:

#docker port container_name或#docker port container_name <PORT_NUMBER>

基于一個新的基礎鏡像新建容器

1.查找官方倉庫中的鏡像

docker search ubuntu

可以看到返回了很多包含關鍵字的鏡像,其中包括鏡像名字、描述、收藏數(表示該鏡像的受關注程度)、是否官方創建、是否自動創建

2.下載鏡像到本地

docker pull ubuntu:18.04

3.查看下載的鏡像

docker images

4.加載鏡像到容器并運行

docker run -itd --privileged=true --cap-add=SYS_ADMIN --mount type=bind,src=/data/home,target=/root/workspace -p 30000:22 <IMAGE ID> bin/bash

5.推送鏡像到遠程倉庫

docker push

容器的保存及打開

容器導出文件再導入文件為本地鏡像,會丟失歷史和元數據,無法回滾到以前的層,導出的包稍小。

1.先獲取容器id

docker container ls

2.導出容器內容為一個tar包

docker export <CONTAINER ID> > /home/export.tar

3.導入一個文件(典型為tar包)路徑或目錄來創建一個本地鏡像,可以重新指定鏡像名字。

cat xxx.tar | docker import - new_name:new_tag

或:

從指定URL或某個目錄導入容器快照:

docker import http://example.com/exampleimage.tgz example/imagerepo

4.加載鏡像到容器,并啟動容器

docker run

鏡像的保存及打開

鏡像導出文件再導入文件為本地鏡像,不丟失歷史和層,可以層回滾

1.查看鏡像id

docker images

2.導出鏡像內容為一個tar包

docker save <IMAGE NAME> > /home/save.tar

3.從一個tar包中加載一個鏡像,不可以重新指定鏡像名字

docker load < /home/save.tar

4.查看導入的鏡像id

docker images


以上命令基本覆蓋了嵌入式開發中常用的docker命令,想了解更多可以查看:

Docker 官方主頁:https://www.docker.com

Docker 官方博客:https://blog.docker.com

Docker 官方文檔:https://docs.docker.com

希望大家看到有所收獲,指出問題共同進步,在飛凌的技術支持和分享中獲得更多的知識。

相關產品 >

  • FETMX6Q-C核心板

    i.MX6Q核心板板層出不窮,要如何選擇?飛凌解讀i.mx6Q芯片強性能為您推薦四核A9架構的i.MX6Q產品精選,包含iMX6Q 核心板、i.MX6Q 核心板、iMX6Q工業級核心板,歡迎采購。  i.MX6Q核心板基于NXP(原Freescale)Cortex-A9架構的i.MX6Q四核處理器設計,核心板小尺寸核心板搭配獨特的薄款連接器,讓設計隨心所欲!

    了解詳情
    FETMX6Q-C核心板
  • FETA40i-C核心板

    Allwinner A40i是全志開發的一款工業級處理器,A40i作為全國產工業級芯片中的佼佼者,采用更低功耗的4核ARM Cortex-A7架構,工作溫度-40-85℃,是一款高性能低功耗超高性能CPU主芯片。飛凌嵌入式深度研究全志A40i芯片參數、原理圖、datasheet規格書推出了以FETA40i核心板為主的一系列全國產工業級嵌入式計算機板卡,并提供了用于評估的A40i工控板、 A40i開發板。 了解詳情
    FETA40i-C核心板
  • FETT507-C核心板

    推薦T507,全志T507核心板采用工業級處理器設計開發,提供T507規格書,T507各類設計資料。FETT507-C核心板集成全志T507四核工業級處理器設計開發,Cortex-A53架構,主頻1.5GHz,集成G31 GPU,內存2GB DDR3L,存儲8GB eMMC。整板工業級運行溫寬,支持絕大部分當前流行的視頻及圖片格式解碼,具有穩定可靠的工業級產品性能、低功耗以及豐富的用戶接口等優勢,搭載Linux、Android、Ubuntu*操作系統,適用于車載電子、電力、醫療、工業控制、物聯網、智能終端等領域 了解詳情
    FETT507-C核心板
  • FETMX8MP-C核心板

    iMX8MP核心板基于 NXP  i.MX 8M Plus 處理器設計,  采用4核Cortex-A53 和 Cortex-M7架構。支持雙千兆網口,iMX8MP性能強勁最高運行速率可達2.3TOPS,并且i.MX8MP功耗更低≤2W 。iMX 8M Plus系列專注于機器學習和視覺、高級多媒體以及具有高可靠性的工業自動化。它旨在滿足智慧家庭、樓宇、城市和工業4.0應用的需求。飛凌iMX8MP核心板提供用戶手冊,iMX8MP原理圖,引腳定義等。
    了解詳情
    FETMX8MP-C核心板

推薦閱讀 換一批 換一批