Docker操做經常使用命令-鏡像篇

獲取鏡像

docker pull [選項] [Docker Registry 地址[:端口號]/] 倉庫名[:標籤]

例:docker pull ubuntu:16.04html

具體選項可經過 docker pull --help 命名看到nginx

Docker Registry 默認爲Docker Hub,地址格式爲<IP/域名>
例:docker pull ubuntu:16.04web

運行容器

docker run 倉庫名
以上面的Ubuntu爲例,若是咱們打算啓動裏面的bash並進行交互式操做docker

docker run -it --rm ubuntu:16.04 bash
  • -it: 這是兩個參數,一個是-i:交互式操做,一個是-t終端。咱們這裏打打算進入bash執行一些命令並查看返回結果,所以咱們須要交互式終端
  • --rm: 這個參數會讓容器退出後刪除,用以免浪費空間
  • ubuntu:16.04: 以該鏡像做爲基礎來啓動容器
  • bash: 放在鏡像後的是命令,這裏咱們但願有個交換式Shell\

想要進入正在運行的ubuntu容器並進行交互式操做:ubuntu

docker exec -it [id] bash

nginx鏡像啓動一個容器,命名爲webserver,映射到80端口bash

docker run --name webserver -d -p 80:80 nginx

修改容器內容code

docker exec -it webserver bash
root@b7d21b2180ce:/# echo '<h1>Hello,world</h1>' > /usr/share/nginx/html/index.html
root@b7d21b2180ce:/# exit

此時咱們修改了容器的存儲層,能夠經過docker diff看到具體的改動
經過docker commit能夠將容器保存爲鏡像(但並不推薦這樣作)
docker commit [選項] <容器ID或容器名> [<倉庫名>[:<標籤>]]orm

列出鏡像

docker image ls
  • 列出虛懸鏡像docker image ls -f dangling=true
  • 刪除虛懸鏡像docker image prune
  • 列出包括中間層鏡像在內的全部鏡像docker image ls -a

鏡像體積

docker system df

列出部分鏡像

  • 根據倉庫名docker image ls ubuntu
  • 列表項目根據時間

docker image ls -f since=ubuntu
docker image ls -f before=ubuntuserver

以特定格式顯示

docker image ls --format "{{.ID}}:{{.Repository}}"
等間距顯示
docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"

刪除本地鏡像

docker image rm [選項] <鏡像1>[<鏡像2>...]

其中,<鏡像>能夠是鏡像ID鏡像名鏡像摘要htm

使用docker image ls命令配合

刪除全部倉庫名爲hello-world的鏡像:

docker image rm (docker image ls -q hello-world)

刪除全部在ubuntu以前的鏡像

docker image rm (docker image ls -q -f before=ubuntu)
相關文章
相關標籤/搜索