https://docs.docker.com/reference/ 官方命令總結地址java
建立一個新的容器並運行一個命令mysql
docker run [options] image [command] [arg...] -a stdin:指定標準輸入輸出內容類型,可選STDIN/STDOUT/STDERR -d: 後臺運行容器,並返回容器ID -i: 以交互式運行容器,一般與-t同時使用 -p: 端口映射,格式爲 主機(宿主)端口:容器端口 -t: 爲容器從新分配一個僞輸入終端,一般與-i同時使用 --name="name": 爲容器指定一個名稱 --dns 8.8.8.8: 爲容器指定一個dns服務器,默認與宿主一致 --dns-search domain:爲容器指定一個DNS域名,默認與宿主一致 -h "hostname": 指定容器的hostname -e arg="value": 設置環境變量 -env-file=[]:從指定文件讀入環境變量 --cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定的cpu運行 -m: 設置容器使用內存最大值 --net="bridge": 指定容器的網絡鏈接類型,支持bridge/host/none/container四種類型 --link=[]:添加連接到另一個容器 --expose=[]:開放一個端口或一組端口,宿主機使用隨機端口映射到開放的端口 #實例 docker run --name mynginx -d nginx:latest # 映射多個端口 docker run -p 80:80/tcp -p 90:90 -v /data:/data -d nginx:latest docker run -p 127.0.0.1:80:8080/tcp ubuntu bash docker run -it nginx:latest /bin/bash
啓動/關閉/重啓容器nginx
docker start/stop/restart [options] container [container...]
殺掉一個運行中的容器sql
-s:向容器發送一個信號 docker kill -s KILL mynginx
刪除一個或多個容器docker
-f:經過SIGKILL信號強制刪除一個運行中的容器 -l:移除容器間的網絡鏈接,而非容器自己 -v:-v刪除與容器關聯的卷 docker rm -f db01 db02 docker rm -l db docker rm -v nginx01
pause暫停,unpause恢復apache
docker pause [OPTIONS] CONTAINER [CONTAINER...]
docker unpause [OPTIONS] CONTAINER [CONTAINER...]
建立一個容器,但不啓動它(用法相似docker run)ubuntu
docker create --name mynginx nginx:latest
docker exec:在運行的容器中執行命令bash
-d:分離模式:在後臺運行 -i:及時沒有附加也保持STDIN打開 -t:分配一個僞終端 docker exec -it mynginx /bin/bash /root/secript.sh docker exec -i -t mynginx /bin/bash # 使用該命令能夠分配一個僞終端執行命令, 使用exit推出時,docker容器不會自動關閉
1.PS服務器
列出容器網絡
-a: 顯示全部容器,包括未運行的 -f: 根據條件過濾顯示的內容 --format: 指定返回值的模板文件 -l: 顯示最近建立的容器 -n: 列出最近建立的n個容器 --no-trunc: 不截斷輸出 -q: 靜默模式,值顯示容器編號 -s: 顯示總文件大小 docker ps docker ps -n 5 docker ps -a -q
獲取容器/鏡像的元數據
-f: 指定返回值的模板 -s: 顯示總的文件大小 --type: 爲指定類型返回JSON docker inspect mysql:5.6 docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mymysql
查看容器中運行的進行信息,支持ps命令參數
docker top [options] container [ps options] docker top mymysql
鏈接到運行中的容器
docker attach [options] container # --sig-proxy=false 加上參數容器仍是會退出(經過ctrl+D退出容器) docker attach --sig-proxy=false mynginx
從服務器獲取實時時間(監聽)
-f: 根據條件過濾事件 --since:從指定的時間戳後顯示全部事件 --until:流水時間顯示到指定的時間爲止 若是不加任何參數,監聽當前事件 docker events
獲取容器的日誌(容器中輸出到STDOUT,STDERR中的日誌)
-f: 跟蹤日誌輸出 --since: 顯示某個時間開始的全部日誌 -t: 顯示時間戳 --tail: 僅列出最新n條容器日誌 docker logs -f mynginx
阻塞運行直到容器中止,而後打印它的退出代碼
docker wait container
將容器的文件系統做爲一個tar歸檔文件導出到stdout
docker export -o mysql-`data +%Y%m%d`.tar a404c6c174a2
列出指定的容器的端口映射或者查找將PRIVATE_PORT NAT到面向公衆的端口
docker port mysql
更新容器的一些配置(內存,cpu,是否自動啓動), 修改內存時,虛擬機必須是關機狀態,不然報錯 未知參數
root@bogon:~# docker update --help Usage: docker update [OPTIONS] CONTAINER [CONTAINER...] Update configuration of one or more containers Options: --blkio-weight uint16 Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0) --cpu-period int Limit CPU CFS (Completely Fair Scheduler) period --cpu-quota int Limit CPU CFS (Completely Fair Scheduler) quota --cpu-rt-period int Limit the CPU real-time period in microseconds --cpu-rt-runtime int Limit the CPU real-time runtime in microseconds -c, --cpu-shares int CPU shares (relative weight) --cpus decimal Number of CPUs --cpuset-cpus string CPUs in which to allow execution (0-3, 0,1) --cpuset-mems string MEMs in which to allow execution (0-3, 0,1) --kernel-memory bytes Kernel memory limit -m, --memory bytes Memory limit --memory-reservation bytes Memory soft limit --memory-swap bytes Swap limit equal to memory plus swap: '-1' to enable unlimited swap --restart string Restart policy to apply when a container exits root@bogon:~# docker update --memory-swap 10240000 -m 10240000 portainer
從容器建立一個新的鏡像
-a: 提交的鏡像做者 -c: 使用dockerfile指令來建立鏡像 -m: 提交時的說明文字 -p: 在提交時,將容器暫停 docker commit -a "runoob.com" -m "my apache" a404c6c174a2 myapache:v1
用於容器和主機之間的數據拷貝
docker cp [options] container:src_path dest_path docker cp [options] src_path container:dest_path docker cp /www/runoob 96f7f14e99ab:/www/ docker cp 96f7f14e99ab:/www/ /www/runoob
檢查容器裏文件結構的修改
docker diff [options] container docker diff mymysql
登錄docker hub公共倉庫(須要本身去註冊)
docker login [options] [server] docker logout [options] [server] -u: 登錄的用戶名 -p: 登錄的密碼
從鏡像倉庫中拉取或更新指定鏡像
docker pull [options] name[:tag|@DIGEST] -a: 拉取全部tagged鏡像 --disable-content-trust: 忽略鏡像的校驗,默認開啓 # 下載最新版java鏡像 docker pull java
將本地鏡像上傳到鏡像倉庫,要先登錄到鏡像倉庫
docker push [options] name[:tag] --disable-content-trust: 忽略鏡像的校驗,默認開啓 docker push myapache:v1
在docker hub查找鏡像
docker search [options] term --automated: 只列出automated build類型的鏡像 --no-trunc: 顯示完整的鏡像描述 -s: 列出收藏數小於指定值的鏡像 docker search -s 10 java
列出本地鏡像
docker images [options] [repository:tag] -a: 列出本地全部鏡像(含中間映像層,默認過濾中間映像層) --digests: 顯示鏡像的摘要信息(MD5值) -f: 顯示知足條件的鏡像 --format: 指定返回值的模版文件 --no-trunc: 顯示完整的鏡像信息 -q: 只顯示鏡像ID docker images docker images ubuntu
刪除本地一個或多個鏡像
-f:強制刪除 --no-prune: 不移除該鏡像的過程進行,默認移除 docker rmi -f runoob/ubuntu:v4
標記本地鏡像,將其納入某一個倉庫
# 把鏡像ubuntu:15.10標記爲runoob/ubuntu:v3 docker tag ubuntu:15.10 runoob/ubuntu:v3
用於使用dockerfile建立鏡像(後面會講解到)
docker build [options] path | url | -
查看指定鏡像的建立歷史
docker history [options] image -H: 以可讀的格式打印鏡像大小和日期,默認爲true --no-trunc: 顯示完整的提交記錄 -q: 僅列出提交記錄ID
將指定鏡像保存成tar歸檔文件
docker save [options] image [image ...] -o: 輸出文件 docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3
從歸檔文件中建立鏡像
docker import [options] file |URL |- [repository:tag] docker import my_ubuntu_v3.tar runoob/ubuntu:v4
1.info
顯示docker系統信息,包括鏡像和容器數
docker info [options] docker info
顯示docker版本信息
docker version [options] -f: 指定返回值的模板文件 docker version
查看每一個運行的docker容器的狀態
docker stats CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 9c5e0e259466 test02 0.02% 12.46MiB / 100MiB 12.46% 1.3kB / 0B 19.2MB / 16.4kB 2 d5183228b334 test01 0.02% 12.55MiB / 100MiB 12.55% 1.04kB / 0B 7.59MB / 16.4kB 2