Docker客户端常用命令整理
之前在?https://blog.csdn.net/fengbingchun/article/details/109584460 中介紹過在Windows10家庭版和Ubuntu16.04上安裝Docker的操作步驟,這里整理下Docker客戶端常用命令。
在Windows10家庭版上運行Docker后,通過VMware就不能打開Ubuntu16.04虛擬機了,提示"VMware Workstation與Device/Credential Guard不兼容。在禁用Device/Credential Guard后,可以運行VMware Workstation",原因是Windows10開啟Hyper-V后與VMware Workstation沖突導(dǎo)致無法運行和新建虛擬機,可通過以管理員身份打開PowerShell,然后輸入命令"bcdedit /set hypervisorlaunchtype off",然后重啟,此時VMware可正常運行了,不過在Windows10上的Docker就不能正常啟動了,需在PowerShell中輸入命令"bcdedit /set hypervisorlaunchtype auto",然后重啟,Windows10上的Docker可正常運行。還有一種說法是將VMware更新到較高的版本。
Windows10上啟動Docker:雙擊"Docker Desktop"圖標,等待片刻,當鯨魚圖標靜止時,Docker啟動成功,之后打開PowerShell(Win+x后點擊Windows PowerShell)使用Docker。
為了能在Docker Hub上拉取鏡像,首先需要在https://hub.docker.com上免費注冊一個賬號。
每個命令的具體用法都可以通過--help來查看,如查看pull命令的詳細用法,執(zhí)行: $ docker pull --help
docker version # 輸出Docker的版本信息
docker info # 顯示一些相關(guān)的Docker系統(tǒng)信息
docker login # 登錄Docker Hub,要求輸入用戶名和密碼
docker logout # 退出Docker Hub
docker search ubuntu # 通過search命令查找Docker Hub中的鏡像,如查找ubuntu,search命令并不支持查找TAG版本,可登錄Docker Hub,搜索框中搜索ubuntu,然后再在Filter Tags中搜索指定的版本
docker pull ubuntu:16.04 # 從Docker Hub中獲取鏡像,若不給出用戶名,則默認為library,為官方鏡像,若拉取自己的鏡像,則為docker pull fengbingchun/ubuntu:16.04
docker tag ubuntu:16.04 fengbingchun/ubuntu:v2.0 # 為一個鏡像打標簽,將其歸入指定倉庫,如將鏡像"ubuntu:16.04"標記為"fengbingchun/ubuntu:v2.0"
docker images # 查看當前系統(tǒng)中已存在的鏡像,列表包含了倉庫名(REPOSITORY)、標簽(TAG)、鏡像ID(IMAGE ID)、創(chuàng)建時間(CREATED)、所占用空間(SIZE),此命令只會顯示頂層鏡像
docker image ls -a # 顯示包括中間層鏡像在內(nèi)的所有鏡像
docker image ls ubuntu # 根據(jù)倉庫名列出鏡像,如列出倉庫名為ubuntu的所有鏡像
docker image prune # 刪除虛懸鏡像(dangling image): 如果新舊鏡像同名,舊鏡像名稱被取消,從而出現(xiàn)倉庫名、標簽均為<none>的鏡像,一般來說,虛懸鏡像已經(jīng)失去了存在的價值,是可以隨意刪除的
docker image rm hello-world # 刪除本地鏡像,如刪除鏡像名為hello-world的鏡像,除了使用鏡像名(倉庫名:標簽)刪除外,還可以使用鏡像短ID、鏡像長ID或鏡像摘要(DIGEST)刪除鏡像
docker run fengbingchun/ubuntu:16.04 env # 查看指定鏡像"fengbingchun/ubuntu:16.04"支持的環(huán)境變量
docker save -o ubuntu_v1.0.tar fengbingchun/ubuntu:v1.0 # 保存一個鏡像到tar包,"ubuntu_v1.0.tar"為tar包名,"fengbingchun/ubuntu:v1.0"為本地鏡像
docker load -i ubuntu_v1.0.tar # 從tar包加載一個鏡像
docker push fengbingchun/ubuntu:16.04 # 將自己(用戶名為fengbingchun)的鏡像推送到Docker Hub
docker history ubuntu:16.04 # 查看鏡像內(nèi)的歷史記錄,如查看ubuntu:16.04
# 通過Dockerfile構(gòu)建鏡像,-t后面的"fengbingchun/ubuntu:16.04"為新建鏡像的名稱,最后的".",實際上是在指定上下文的目錄,docker build命令會將該目錄下的內(nèi)容打包交給Docker引擎以幫助構(gòu)建鏡像
docker build -t fengbingchun/ubuntu:16.04 .
docker container ls -a # 查看容器的狀態(tài)
docker container exec -it bcb8 bash # 進入容器,其中"bcb8"為容器ID(ID值能與其它容器ID區(qū)分開即可),只有當容器狀態(tài)為Up時即容器運行時才有效
# 新建并啟動一個容器,啟動一個bash終端,允許用戶進行交互,-t選項讓Docker分配一個偽終端(pseudo-tty)并綁定到容器的標準輸入上,-i則讓容器的標準輸入保持打開
docker run -it fengbingchun/ubuntu:16.04 /bin/bash
docker run fengbingchun/ubuntu:16.04 /bin/echo "hello" # 新建一個容器,并輸出"hello"之后終止容器
docker container start bcb8 # 將一個已經(jīng)終止的容器啟動運行,其中"bcb8"為容器ID
docker container stop bcb8 # 將一個運行中的容器終止,其中"bcb8"為容器ID
docker export -o ubuntu.tar bcb8 # 導(dǎo)出容器,將導(dǎo)出容器快照到本地tar包,其中"bcb8"為容器ID
docker import ubuntu.tar fengbingchun/ubuntu:v1.1 # 導(dǎo)入tar包容器快照,從容器快照文件中再導(dǎo)入為鏡像
docker container rm bcb8 # 刪除一個處于終止狀態(tài)的容器,其中"bcb8"為容器ID
docker container rm -f bcb8 # 刪除一個運行中的容器,其中"bcb8"為容器ID
docker container prune # 刪除掉所有處于終止狀態(tài)的容器
docker diff bcb8 # 查看容器的存儲層的具體的改動,其中"bcb8"為容器ID
docker commit bcb8 fengbingchun/ubuntu:v1.0 # 在原有鏡像的基礎(chǔ)上,再加上容器的存儲層,并構(gòu)成新的鏡像,其中"bcb8"為容器ID,"fengbingchun/ubuntu:v1.0"為新建鏡像的名稱
docker inspect fengbingchun/ubuntu:v1.0 # 顯示指定鏡像的具體配置信息,"fengbingchun/ubuntu:v1.0"為鏡像的名稱
docker inspect bcb8 # 顯示指定容器的具體配置信息,其中"bcb8"為容器ID
docker inspect --format '{{.NetworkSettings.IPAddress}}' bcb8 # 獲取指定容器的IP地址,其中"bcb8"為容器ID,只有當容器狀態(tài)為Up時即容器運行時才有效
docker cp 1.txt bcb8:/home/ # 將主機文件或目錄拷貝到容器指定的目錄下,其中"bcb8"為容器ID
docker cp bcb8:/home/1.txt . # 將容器指定目錄或指定目錄下的文件拷貝到主機當前目錄下,其中"bcb8"為容器ID
docker logs -f bcb8 # 獲取指定容器的日志,其中"bcb8"為容器ID
docker rename yyyy xxxx # 重命名一個容器,其中"yyyy"為原容器名,"xxxx"為新容器名
docker top bcb8 # 查看正在運行中的容器的進程信息,其中"bcb8"為容器ID
docker system df # 查看鏡像、容器、數(shù)據(jù)卷所占用的空間
?
總結(jié)
以上是生活随笔為你收集整理的Docker客户端常用命令整理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker在Ubuntu16.04和W
- 下一篇: 开源库jemalloc简介