目 錄
Docker命令分類
容器生命週期管理
- docker run
- docker start/stop/restart
- docker kill
- docker rm
- docker pause/unpause
- docker create
- docker exec
容器操作
- docker ps
- docker inspect
- docker top
- docker attach
- docker events
- docker logs
- docker wait
- docker export
- docker port
容器rootfs命令
- docker commit
- docker cp
- docker diff
鏡像倉庫
- docker login
- docker pull
- docker push
- docker search
本地鏡像管理
- docker images
- docker rmi
- docker tag
- docker build
- docker history
- docker save
- docker import
版本信息
- docker version
- docker info
Dock命令使用
1. docker version
說明:顯示 Docker 版本信息。
2. docker info
說明:顯示 Docker 系統信息,包括鏡像和容器數。
3. docker search
**用法:**docker search [options “o”>] term
說明:從 Docker Hub 中搜索符合條件的鏡像。
options:
- –automated 只列出 automated build類型的鏡像;
- –no-trunc 可顯示完整的鏡像描述;
- -s 40 列出收藏數不小於40的鏡像。
示例:
docker search -s 1000 django
4. docker pull
**用法:**docker pull [-a “o”>] [user/ “o”>]name[:tag “o”>]
說明: 從 Docker Hub 中拉取或者更新指定鏡像。
options:
- -a 拉取所有 tag鏡像
示例:
docker pull laozhu/telescope:latest
5. docker login
root@moon:~# docker login
Username: username
Password: ****
Email: user@domain.com
Login Succeeded
按步驟輸入在 Docker Hub 註冊的用戶名、密碼和郵箱即可完成登錄。
6. docker logout
說明:運行後從指定服務器登出,默認爲官方服務器。
7. docker images
**用法:**docker images [options “o”>] [name]
說明:列出本地所有鏡像。其中[name]對鏡像名稱進行關鍵詞查詢。
options:
- -a 列出所有鏡像(含過程鏡像);
- -f 過濾鏡像,如: -f [‘dangling=true’] 只列出滿足
dangling=true 條件的鏡像;
- –no-trunc 可顯示完整的鏡像ID;
- -q 僅列出鏡像ID。
- –tree 以樹狀結構列出鏡像的所有提交歷史。
8. docker ps
說明:列出所有運行中容器。
options:
- -a 列出所有容器(含沉睡鏡像);
- –before=”nginx” 列出在某一容器之前創建的容器,接受容器名稱和ID作爲參數;
- –since=”nginx” 列出在某一容器之後創建的容器,接受容器名稱和ID作爲參數;
- -f [exited=] 列出滿足exited=條件的容器;
- -l 僅列出最新創建的一個容器;
- –no-trunc 顯示完整的容器ID;
- -n=4 列出最近創建的4個容器;
- -q 僅列出容器ID;
- -s 顯示容器大小。
9. docker rmi
**用法:**docker rmi [options “o”>] “o”>[image…]
說明:從本地移除一個或多個指定的鏡像。
options:
- -f 強行移除該鏡像,即使其正被使用;
- –no-prune 不移除該鏡像的過程鏡像,默認移除。
示例:
docker rmi nginx:latest postgres:latest python:latest
10. docker rm
**用法:**docker rm [options “o”>] “o”>[container…]
options:
- -f 強行移除該容器,即使其正在運行;
- -l 移除容器間的網絡連接,而非容器本身;
- -v 移除與容器關聯的空間。
示例:
docker rm nginx-01 nginx-02 db-01 db-02
sudo docker rm -l /webapp/redis
11. docker history
**用法:**docker history “o”>[options]
說明:查看指定鏡像的創建歷史。
options:
- –no-trunc 顯示完整的提交記錄;
- -q 僅列出提交記錄ID。
12. docker start|stop|restart
**用法:**docker start|stop “p”>|restart [options “o”>] “o”>[container…]
說明:啓動、停止和重啓一個或多個指定容器。
options:
- -a 待完成
- -i 啓動一個容器並進入交互模式;
- -t 10 停止或者重啓容器的超時時間(秒),超時後系統將殺死進程。
示例:
# 啓動已被停止的容器myrunoob
docker start myrunoob
# 停止運行中的容器myrunoob
docker stop myrunoob
# 重啓容器myrunoob
docker restart myrunoob
13. docker kill
**用法:**docker kill “o”>[options “o”>] “o”>[container…]
說明:殺死一個或多個指定容器進程。
options:
- -s “KILL” 自定義發送至容器的信號。
示例:
# 殺掉運行中的容器mynginx
runoob@runoob:~$ docker kill -s KILL mynginx
mynginx
14. docker events
用法: docker events [options “o”>]
說明: 從服務器拉取個人動態,可選擇時間區間。
示例:
docker events --since= "s2">"20141020"
docker events --until= "s2">"20120310"
15. docker save
說明: 將指定鏡像保存成 tar 歸檔文件, docker load 的逆操作。保存後再加載(saved-loaded)的鏡像不會丟失提交歷史和層,可以回滾。
options:
- -o 鏡像歸檔 指定保存的鏡像歸檔。
示例:
docker save -o "debian.tar"
docker save > "debian.tar"
16. docker load
用法: docker load [options]
說明: 從 tar 鏡像歸檔中載入鏡像, docker save 的逆操作。保存後再加載(saved-loaded)的鏡像不會丟失提交歷史和層,可以回滾。
options:
- -i 鏡像歸檔 指定載入的鏡像歸檔。
示例:
docker load < debian.tar
docker load -i "debian.tar"
17. docker export
用法: docker export
說明: 將指定的容器保存成 tar 歸檔文件, docker import 的逆操作。導出後導入(exported-imported))的容器會丟失所有的提交歷史,無法回滾。
示例:
docker export nginx-01 > export.tar
18. docker import
用法: docker import url|- “o”>[repository[:tag “o”>]]
說明: 從歸檔文件(支持遠程文件)創建一個鏡像, export 的逆操作,可爲導入鏡像打上標籤。導出後導入(exported-imported))的容器會丟失所有的提交歷史,無法回滾。
示例:
cat export.tar "p">| docker import - imported-nginx:latest
docker import http://example.com/export.tar
19. docker top
用法: docker top “o”>[ps options]
說明:查看一個正在運行容器進程,支持 ps 命令參數。
20. docker inspect
說明: 檢查鏡像或者容器的參數,默認返回 JSON 格式。
options:
- -f 指定返回值的模板文件。
示例:
docker instpect nginx:latest
docker inspect nginx-container
21. docker pause
說明: 暫停某一容器的所有進程。
22. docker unpause
用法: docker unpause
說明: 恢復某一容器的所有進程。
23. docker tag
用法: docker tag [options “o”>] [:tag “o”>] [repository/ “o”>][username/]name “o”>[:tag]
說明: 標記本地鏡像,將其歸入某一倉庫。
options:
- -f 覆蓋已有標記。
24. docker push
用法: docker push name[:tag “o”>]
說明: 將鏡像推送至遠程倉庫,默認爲 Docker Hub
示例:
docker push laozhu/nginx:latest
25. docker logs
用法: docker logs [options “o”>]
說明: 獲取容器運行時的輸出日誌。
options:
- -f 跟蹤容器日誌的最近更新;
- -t 顯示容器日誌的時間戳;
- –tail=”10” 僅列出最新10條容器日誌。
示例:
docker logs -f -t --tail= "s2">"10" insane_babbage
26. docker run
用法: docker run [options “o”>] [ “nb”>command] “o”>[arg…]
說明: 啓動一個容器,在其中運行指定命令。
options:
- -a stdin 指定標準輸入輸出內容類型,可選 STDIN/
STDOUT / STDERR 三項;
- -d 後臺運行容器,並返回容器ID;
- –dns 8.8.8.8 指定容器使用的DNS服務器,默認和宿主一致;
- –dns-search example.com 指定容器DNS搜索域名,默認和宿主一致;
- -i 以交互模式運行容器,通常與 -t 同時使用;
- -t 爲容器重新分配一個僞輸入終端,通常與 -i 同時使用;
- -h “mars” 指定容器的hostname;
- -e username=”ritchie” 設置環境變量;
- –expose=[] 待完成
- –env-file=[] 從指定文件讀入環境變量;
- -c, –cpu-shares CPU共享設置(相對權重)
- –cpuset=”0-2” or –cpuset=”0,1,2” 綁定容器到指定CPU運行
- -m, –memory 內存限制
- –name=”nginx-lb” 爲容器指定一個名稱;
- –net=”bridge” 指定容器的網絡連接類型,支持 bridge /
host / none
- container:
# 使用docker鏡像nginx:latest以後臺模式啓動一個容器,並將容器命名爲mynginx
docker run --name mynginx -d nginx:latest
# 使用鏡像nginx:latest以後臺模式啓動一個容器,並將容器的80端口映射到主機隨機端口。
docker run -P -d nginx:latest
# 使用鏡像nginx:latest以後臺模式啓動一個容器,將容器的80端口映射到主機的80端口,主機的目錄/data映射到容器的/data。
docker run -p 80:80 -v /data:/data -d nginx:latest
#使用鏡像nginx:latest以交互模式啓動一個容器,在容器內執行/bin/bash命令。
root@localhost:~# docker run -it nginx:latest /bin/bash
root@b8573233d675:/#
27. docker create
用法: docker create [OPTIONS] IMAGE [COMMAND] [ARG…]
說明: 創建一個新的容器但不啓動它
示例:
# 使用docker鏡像nginx:latest創建一個容器,並將容器命名爲myrunoob
root@localhost:~# docker create --name myrunoob nginx:latest
09b93464c2f75b7b69f83d56a9cfc23ceb50a48a9db7652ee4c27e3e2cb1961f
28. docker exec
用法: docker exec [OPTIONS] CONTAINER COMMAND [ARG…]
說明: 在運行的容器中執行命令
options:
- -d :分離模式: 在後臺運行
- -i :即使沒有附加也保持STDIN 打開
- -t :分配一個僞終端
示例:
# 在容器mynginx中以交互模式執行容器內/root/runoob.sh腳本
root@localhost:~# docker exec -it mynginx /bin/sh /root/runoob.sh
http://www.runoob.com/
在容器mynginx中開啓一個交互模式的終端
root@localhost:~# docker exec -i -t mynginx /bin/bash
root@b1a0703e41e7:/#
29. docker commit
用法: docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
說明: 從容器創建一個新的鏡像
options:
- -a :提交的鏡像作者;
- -c :使用Dockerfile指令來創建鏡像;
- -m :提交時的說明文字;
- -p :在commit時,將容器暫停。
示例:
# 將容器a404c6c174a2 保存爲新的鏡像,並添加提交人信息和說明信息。
root@localhost:~# docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1
sha256:37af1236adef1544e8886be23010b66577647a40bc02c0885a6600b33ee28057
root@localhost:~# docker images mymysql:v1
REPOSITORY TAG IMAGE ID CREATED SIZE
mymysql v1 37af1236adef 15 seconds ago 329 MB
30. docker cp
用法:
- docker cp [OPTIONS] CONTAINER: SRC_PATH DEST_PATH|-
- docker cp [OPTIONS] SRC_PATH|- CONTAINER: DEST_PATH說明: 用於容器與主機之間的數據拷貝
options:
- -L :保持源目標中的鏈接
示例:
# 將主機/www/runoob目錄拷貝到容器96f7f14e99ab的/www目錄下。
docker cp /www/runoob 96f7f14e99ab:/www/
# 將主機/www/runoob目錄拷貝到容器96f7f14e99ab中,目錄重命名爲www。
docker cp /www/runoob 96f7f14e99ab:/www
# 將容器96f7f14e99ab的/www目錄拷貝到主機的/tmp目錄中。
docker cp 96f7f14e99ab:/www /tmp/
31. docker diff
用法: docker diff [OPTIONS] CONTAINER
說明: 檢查容器裏文件結構的更改
示例:
# 查看容器mymysql的文件結構更改。
root@localhost:~# docker diff mymysql
A /logs
A /mysql_data
C /run
C /run/mysqld
A /run/mysqld/mysqld.pid
A /run/mysqld/mysqld.sock
C /tmp
32. docker port
用法: docker port [OPTIONS] CONTAINER [PRIVATE_PORT[/PROTO]]
說明: 列出指定的容器的端口映射,或者查找將PRIVATE_PORT NAT到面向公衆的端口
示例:
# 查看容器mynginx的端口映射情況。
root@localhost:~# docker port mymysql
3306/tcp -> 0.0.0.0:3306
33. docker attach
用法: docker attach [OPTIONS] CONTAINER
說明: 連接到正在運行中的容器, 要attach上去的容器必須正在運行,可以同時連接上同一個container來共享屏幕
示例:
# 容器mynginx將訪問日誌指到標準輸出,連接到容器查看訪問信息。
root@localhost:~# docker attach --sig-proxy=false mynginx
192.168.239.1 - - [10/Jul/2016:16:54:26 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36" "-"