docker 鏡像、容器、倉庫 - 操作命令


  • 鏡像

 1.獲取鏡像

如果不指定TAG,則下載最新版本,默認選擇latest標簽
docker pull ubuntu:18.04
docker pull ubuntu
下載非官方鏡像
docker pull hub.c.163.com/public/ubuntu:18.04

  

 2.查看鏡像

列出鏡像
docker images 或 docker image ls
tag添加鏡像標簽
docker tag ubuntu:latest myubuntu:latest
inspect查看詳細信息 
docker inspect ubuntu:18.04
history查看鏡像歷史 
docker history ubuntu:18.04
 
        

 3.搜尋鏡像

docker search [option] keyword
  • -f ,--filter filter:過濾輸出內容
  • --format string:格式化輸出內容
  • --limit int:限制輸入結果個數,默認為25個
  • --no-trunc:不截斷輸出結果
  搜索帶nginx關鍵詞的鏡像
  docker search --filter=is-official=true nginx
  搜索收藏數超過4的關鍵詞包括tensorflow鏡像
  docker search --filter=stars=4 tensorflow

 4.刪除和清理鏡像

使用標簽刪除鏡像
docker rmi 或 docker image rm
docker rmi myubuntu:latest
使用鏡像ID刪除鏡像
docker rmi id(12位)

* 當該鏡像創建的容器存在時,鏡像文件默認是無法刪除的,需先刪除依賴鏡像的所有容器,然后再刪除鏡像

  ==> 使用 docker ps -a  查看已關聯使用的容器,然后使用 docker rm ID 刪除容器

清理鏡像
長時間使用會產生臨時文件
docker image prune -f
  • -a ,-all:刪除所有無用鏡像,不光是臨時鏡像
  • -filter filter:只清理符合給定過濾器的鏡像
  • -f, -force:強制刪除鏡像,而不進行提示確認

 

 5.創建鏡像

基於已有容器創建
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

1) 首先先啟動一個鏡像
>> docker run it ubuntu:18.04 /bin/bash
49d5d4e7b3f6 >> touch test
49d5d4e7b3f6 >> exit
記住容器的ID為:49d5d4e7b3f6
2)創建提交一個新的鏡像
docker commit -m "Added a new file" -a "testdocker" 49d5d4e7b3f6 test:0.1
  • -a , --author="": 作者信息;
  • -c, --change=[]: 提交的時候執行Dockerfile指令,包括CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR等
  • -m, --message="": 提交信息;
  • -p, --pause=true: 提交時暫停容器運行 
基於Dockerfile創建
docker build

 

 6.存出和載入鏡像

存出鏡像 - 鏡像導出
docker save
docker save -o ubuntu_18.04.tar ubuntu:18.04
載入鏡像 - 鏡像導入
docker load
docker load -i ubuntu_18.04.tar

 

 7.上傳鏡像

push上傳至docker hub
1)先登錄,輸入注冊的用戶名和密碼
docker login
2)然后使用push命令上傳,username為你注冊的名稱
docker push username/xxxx:xx

 

 

  • 容器

 1.創建容器

新建容器 + 啟動
1)新建容器
docker create -it ubuntu:latest
2)啟動容器
docker start xxx
新建並啟動 = 新建+啟動
docker run ubuntu /bin/echo 'Hello world'
允許用戶進行交互
docker run -it ubuntu:18.04 /bin/bash
后台運行
docker run -d ubuntu /bin/sh -c 'while true; do echo hello world; sleep 1; done'
容器輸出
docker logs ID

 

 2.停止容器

暫停容器、恢復暫停
docker pause test
docker unpause test
終止容器、重新啟動
docker stop ID
docker start ID
docker restart ID

 

 3.進入容器

exec命令
docker exec -it ID /bin/bash
  • -d,  --detach: 在容器中后台執行命令 ;
  • --detach-key="": 指定將容器切回后台的按鍵 ;
  • -e,  --env=[]: 指定環境變量列表 ;
  • -i,  --interactive=true|false: 打開標准輸入接受用戶輸入命令,默認值為 false ;
  • --privileged=true|false: 是否給執行命令以高權限,默認值為 false ;
  • -t, --tty=true|false: 分配偽終端,默認值為 false ;
  • -u, --user="": 執行命令的用戶名或ID。

 

 4.刪除容器

rm命令
docker rm ID
  • -f,  --force=false: 是否強制終止並刪除一個運行中的容器 ;
  • -l, --link=false: 刪除容器的連接,但保留容器 ;
  • -v,  --volumes=false: 刪除容器掛載的數據卷 。

 

 5.導入和導出容器

導出 export
docker export -o XXX.tar ID
導入 import
docker import XXX.tar test/ubuntu:v1.0

* docker load => 鏡像存儲文件到本地鏡像庫

  docker import => 容器快照到本地鏡像庫

  區別:容器快照文件將丟棄所有的歷史記錄和元數據信息,但可以重新制定標簽等元數據信息,而鏡像存儲文件將保存完整記錄,體積更大。

 

 6.查看容器

查看容器詳細,會以JSON格式返回
docker container inspect ID
查看容器內進程
docker top ID

 

 7.其他容器命令

復制文件
將本地路徑 data 復制到 test 容器的 /tmp 路徑下:
docker cp data ID:/tmp/
查看變更
docker container diff ID
查看端口映射
docker container port ID
更新配置
docker update 參數 ID

 

 

  • 倉庫

 1.搭建本地私有倉庫

使用 registry 鏡像創建私有倉庫
docker run -d -p 5000:5000 registry:2





免責聲明!

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



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