開發(fā)者必備丨Docker客戶端常用命令分享
學習Docker,首先需要了解Docker基本概念,我們在以前的文章中介紹過docker的基本原理和部署操作系統(tǒng)。
今天講下嵌入式開發(fā)中docker客戶端常用的命令,開始進入“動手”階段(也就是敲Docker命令)。Docker命令較多,這里筆者總結下常用的Docker命令,方便小伙伴們查閱。
客戶端常用命令列表
以下為Docker 客戶端常用命令列表,可以通過docker COMMAND --help來查看這些命令的具體用法。
attach:依附到一個正在運行的容器中;
build :從一個Dockerfile創(chuàng)建一個鏡像;
commit:從一個容器的修改中創(chuàng)建一個新的鏡像;
cp:在容器和本地宿主系統(tǒng)之間復制文件中;
create:創(chuàng)建一個新容器,但并不運行它;
diff:檢查一個容器內文件系統(tǒng)的修改,包括修改和增加;
events:從服務端獲取實時的事件;
exec :在運行的容器內執(zhí)行命令;
export:導出容器內容為一個tar包;
history:顯示一個鏡像的歷史信息;
images:列出存在的鏡像;
import:導入一個文件(典型為tar包)路徑或目錄來創(chuàng)建一個本地鏡像;
info:顯示一些相關的系統(tǒng)信息;
inspect:顯示一個容器的具體配置信息;
kill:關閉一個運行中的容器 (包括進程和所有相關資源);
load :從一個tar包中加載一個鏡像;
login :注冊或登錄到一個Docker的倉庫服務器;
logout :從Docker的倉庫服務器登出;
logs:獲取容器的log信息;
network:管理 Docker 的網絡,包括查看、創(chuàng)建、刪除、掛載、卸載等;
node:管理 swarm 集群中的節(jié)點,包括查看、更新、刪除、提升/取消管理節(jié)點等;
pause:暫停一個容器中的所有進程;
port :查找一個 nat 到一個私有網口的公共口;
ps :列出主機上的容器;
pull :從一個Docker的倉庫服務器下拉一個鏡像或倉庫;
push :將一個鏡像或者倉庫推送到一個 Docker 的注冊服務器;
rename:重命名一個容器;
restart:重啟一個運行中的容器;
rm :刪除給定的若干個容器;
rmi :刪除給定的若干個鏡像;
run :創(chuàng)建一個新容器,并在其中運行給定命令;
save :保存一個鏡像為 tar 包文件;
search:在 Docker index 中搜索一個鏡像;
service:管理 Docker 所啟動的應用服務,包括創(chuàng)建、更新、刪除等;
start :啟動一個容器;
stats :輸出(一個或多個)容器的資源使用統(tǒng)計信息;
stop :終止一個運行中的容器;
swarm:管理 Docker swarm 集群,包括創(chuàng)建、加入、退出、更新等;
tag:為一個鏡像打標簽;
top:查看一個容器中的正在運行的進程信息;
unpause:將一個容器內所有的進程從暫停狀態(tài)中恢復;
update:更新指定的若干容器的配置信息;
version:輸出 Docker 的版本信息;
volume:管理 Docker volume,包括查看、創(chuàng)建、刪除等;
wait :阻塞直到一個容器終止,然后輸出它的退出符。
兩張圖總結Docker的命令
Container事件狀態(tài)圖
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進入后臺的容器(用此方法進入后,執(zhí)行exit時不會導致容器的停止,還有個命令attach也可以進入后臺容器,但是exit會導致容器停止)
docker exec -it container_name bin/bash
終止容器
docker container stop
重新啟動終止狀態(tài)的容器
docker container start
終止一個運行態(tài)的容器然后重啟
docker container restart
刪除終止態(tài)容器
docker container rm container_name
刪除運行態(tài)容器
docker container rm -f container_name
清理所有終止態(tài)容器
docker container prune
查看容器的信息
docker inspect container_name
查看容器對應的主機端口:
#docker port container_name或#docker port container_name <PORT_NUMBER>
基于一個新的基礎鏡像新建容器
1.查找官方倉庫中的鏡像
docker search ubuntu
可以看到返回了很多包含關鍵字的鏡像,其中包括鏡像名字、描述、收藏數(表示該鏡像的受關注程度)、是否官方創(chuàng)建、是否自動創(chuàng)建
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包)路徑或目錄來創(chuàng)建一個本地鏡像,可以重新指定鏡像名字。
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
以上命令基本覆蓋了嵌入式開發(fā)中常用的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工業(yè)級核心板,歡迎采購。 i.MX6Q核心板基于NXP(原Freescale)Cortex-A9架構的i.MX6Q四核處理器設計,核心板小尺寸核心板搭配獨特的薄款連接器,讓設計隨心所欲!
了解詳情 -
FETA40i-C核心板
Allwinner A40i是全志開發(fā)的一款工業(yè)級處理器,A40i作為全國產工業(yè)級芯片中的佼佼者,采用更低功耗的4核ARM Cortex-A7架構,工作溫度-40-85℃,是一款高性能低功耗超高性能CPU主芯片。飛凌嵌入式深度研究全志A40i芯片參數、原理圖、datasheet規(guī)格書推出了以FETA40i核心板為主的一系列全國產工業(yè)級嵌入式計算機板卡,并提供了用于評估的A40i工控板、 A40i開發(fā)板。 了解詳情 -
FETT507-C核心板
推薦T507,全志T507核心板采用工業(yè)級處理器設計開發(fā),提供T507規(guī)格書,T507各類設計資料。FETT507-C核心板集成全志T507四核工業(yè)級處理器設計開發(fā),Cortex-A53架構,主頻1.5GHz,集成G31 GPU,內存2GB DDR3L,存儲8GB eMMC。整板工業(yè)級運行溫寬,支持絕大部分當前流行的視頻及圖片格式解碼,具有穩(wěn)定可靠的工業(yè)級產品性能、低功耗以及豐富的用戶接口等優(yōu)勢,搭載Linux、Android、Ubuntu*操作系統(tǒng),適用于車載電子、電力、醫(yī)療、工業(yè)控制、物聯網、智能終端等領域 了解詳情 -
FETMX8MP-C核心板
iMX8MP核心板基于 NXP i.MX 8M Plus 處理器設計, 采用4核Cortex-A53 和 Cortex-M7架構。支持雙千兆網口,iMX8MP性能強勁最高運行速率可達2.3TOPS,并且i.MX8MP功耗更低≤2W 。iMX 8M Plus系列專注于機器學習和視覺、高級多媒體以及具有高可靠性的工業(yè)自動化。它旨在滿足智慧家庭、樓宇、城市和工業(yè)4.0應用的需求。飛凌iMX8MP核心板提供用戶手冊,iMX8MP原理圖,引腳定義等。
了解詳情