docker基本資訊查詢
# 檢視docker版本
$docker version
# 顯示docker系統的資訊
$docker info
鏡像管理
查找image
從 Docker Hub 中搜尋符合條件的鏡像。
docker search [options ] term
docker search -s django
--automated 隻列出 automated build
類型的鏡像;
--no-trunc 可顯示完整的鏡像描述;
-s 列出收藏數不小于的鏡像。
上傳image
從 Docker Hub 中拉取或者更新指定鏡像。
docker pull [-a ] [user/ ]name[:tag ]
docker pull laozhu/telescope:latest
-a 拉取所有 tagged 鏡像 。
将鏡像推送至遠端倉庫
docker push name[:tag ]
docker push laozhu/nginx:latest
将鏡像推送至遠端倉庫,預設為 Docker Hub 。
列出本地所有鏡像
docker images [options ] [name]
列出本地所有鏡像。其中 [name] 對鏡像名稱進行關鍵詞查詢。
-a 列出所有鏡像(含過程鏡像);
-f 過濾鏡像,如: -f ['dangling=true'] 隻列出滿足
dangling=true 條件的鏡像;
--no-trunc 可顯示完整的鏡像ID;
-q 僅列出鏡像ID。
--tree 以樹狀結構列出鏡像的所有送出曆史。
删除image
docker rmi [options ] <image> [image...]
docker rmi nginx:latest postgres:latest python:latest
從本地移除一個或多個指定的鏡像。
-f 強行移除該鏡像,即使其正被使用;
--no-prune 不移除該鏡像的過程鏡像,預設移除。
儲存/加載鏡像
docker save
docker save -i "debian.tar"
docker save > "debian.tar"
-o "debian.tar" 指定儲存的鏡像歸檔。
将指定鏡像儲存成 tar 歸檔檔案, docker load 的逆操作。儲存後再加載(saved-loaded)的鏡像不會丢失送出曆史和層,可以復原。
docker load
docker load [options]
docker load < debian.tar
docker load -i "debian.tar"
-i "debian.tar" 指定載入的鏡像歸檔。
從 tar 鏡像歸檔中載入鏡像, docker save 的逆操作。儲存後再加載(saved-loaded)的鏡像不會丢失送出曆史和層,可以復原。
導出/導入鏡像
docker export
docker export <container>
docker export nginx- > export.tar
将指定的容器儲存成 tar 歸檔檔案, docker import 的逆操作。導出後導入(exported-imported))的容器會丢失所有的送出曆史,無法復原。
docker import
docker import url|- [repository[:tag ]]
cat export.tar "p">| docker import - imported-nginx:latest
docker import http://example.com/export.tar
從歸檔檔案(支援遠端檔案)建立一個鏡像, export 的逆操作,可為導入鏡像打上标簽。導出後導入(exported-imported))的容器會丢失所有的送出曆史,無法復原。
檢視指定鏡像的建立曆史
docker history [options] <image>
--no-trunc 顯示完整的送出記錄;
-q 僅列出送出記錄ID。
容器管理
檢視容器
docker ps
-a 列出所有容器(含沉睡鏡像);
--before="nginx" 列出在某一容器之前建立的容器,接受容器名稱和ID作為參數;
--since="nginx" 列出在某一容器之後建立的容器,接受容器名稱和ID作為參數;
-f [exited=<int>] 列出滿足
exited=<int> 條件的容器;
-l 僅列出最新建立的一個容器;
--no-trunc 顯示完整的容器ID;
-n= 列出最近建立的個容器;
-q 僅列出容器ID;
-s 顯示容器大小。
删除容器
docker rm [options ] <container> [container...]
docker rm nginx- nginx- db- db-
sudo docker rm -l /webapp/redis
#删除所有容器
docker rm $(docker ps -a -q)
-f 強行移除該容器,即使其正在運作;
-l 移除容器間的網絡連接配接,而非容器本身;
-v 移除與容器關聯的空間。
殺死容器
docker kill [options ] <container> [container...]
殺死一個或多個指定容器程序。
-s "KILL" 自定義發送至容器的信号。
啟動、停止和重新開機一個或多個指定容器
docker stop <容器名orID>
docker start <容器名orID>
docker restart<容器名orID>
-a 待完成
-i 啟動一個容器并進入互動模式;
-t 停止或者重新開機容器的逾時時間(秒),逾時後系統将殺死程序。
停止、啟動、殺死一個容器
啟動一個新的容器
注意:此指令比較常用
Usage: docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]
-a=map[]: 附加标準輸入、輸出或者錯誤輸出
-c=: 共享CPU格式(相對重要)
-cidfile="": 将容器的ID辨別寫入檔案
-d=false: 分離模式,在背景運作容器,并且列印出容器ID
-e=[]:設定環境變量
-h="": 容器的主機名稱
-i=false: 保持輸入流開放即使沒有附加輸入流
-privileged=false: 給容器擴充的權限
-m="": 記憶體限制 (格式:<number><optional unit>, unit機關 = b, k, m or g)
-n=true: 允許鏡像使用網絡
-p=[]: 比對鏡像内的網絡端口号
-rm=false:當容器退出時自動删除容器 (不能跟 -d一起使用)
-t=false: 配置設定一個僞造的終端輸入
-u="": 使用者名或者ID
-dns=[]: 自定義容器的DNS伺服器
-v=[]: 建立一個挂載綁定:[host-dir]:[container-dir]:[rw|ro].如果容器目錄丢失,docker會建立一個新的卷
-volumes-from="": 挂載容器所有的卷
-entrypoint="": 覆寫鏡像設定預設的入口點
-w="": 工作目錄内的容器
-lxc-conf=[]: 添加自定義-lxc-conf="lxc.cgroup.cpuset.cpus = 0,1"
-sig-proxy=true: 代理接收所有程序信号(even in non-tty mode)
-expose=[]: 讓你主機沒有開放的端口
-link="": 連接配接到另一個容器(name:alias)
--name="": 配置設定容器的名稱,如果沒有指定就會随機生成一個
-P=false: Publish all exposed ports to thehost interfaces 公布所有顯示的端口主機接口
暫停容器/恢複容器
暫停某一容器的所有程序。
恢複某一容器的所有程序。
倉庫管理
docker login
[email protected]:~# docker login
Username: username
Password: ****
Email: [email protected].com
Login Succeeded
按步驟輸入在 Docker Hub 注冊的使用者名、密碼和郵箱即可完成登入。
docker logout
運作後從指定伺服器登出,預設為官方伺服器。