sudo docker run -i -t ubuntu:14.04 /bin/bash 啓動一個新的Ubuntu容器 sudo docker run --rm -i -t ubuntu:14.04/bin/bash 建議新手測試加上 -—rm sudo docker run -i -t --name "private_container" ubuntu:14.04 /bin/bash
docker ps: 列出當前容器docker
-a, --all=false 顯示全部容器,包括當前沒有運行的容器 -f, --filter=[] 按條件過濾容器, 可選的過濾選項: exited=<int> 容器的返回值 -l, --latest=false 顯示最新的一個容器 -n num 顯示最新的N個容器 --no-trunc=false 不要截斷輸出 -q, --quiet=false 僅顯示容器ID -s, --size=false 顯示容器大小
例:ubuntu
docker ps 當前正在運行的容器 docker ps -a 當前正在運行或是中止的容器 docker ps -a -q --no-trunc 得到當前全部容器的ID,不截斷輸出 docker rm $(echo $(docker ps -q --no-trunc) $(dockerps -a -q--no-trunc) | sed 's|\s|\n|g' |sort | uniq -u) 刪除當前不在運行狀態的容器ID,也能夠把前面改爲docker rm
-a, --all=false 顯示全部鏡像,包括中間生成的臨時鏡像 -f, --filter=[] 經過標籤過濾 (i.e. 'dangling=true') --no-trunc=false 不要截斷輸出 -q, --quiet=false 僅顯示容器ID
例子:bash
docker images 顯示當前倉庫中的鏡像 docker images -a 顯示當前倉庫中的鏡像與臨時鏡像 docker images -a -q --no-trunc 顯示當前倉庫中的鏡像與臨時鏡像的ID,不截斷輸出
docker logs CONTAINER 命令參數: -f, --follow=false 等待容器後續的輸出(相似 tail -f) -t, --timestamps=false 顯示時間戳 --tail="all"
例:測試
sudo docker logs 7bb0e258aefe sudo docker logs --timestamps=true 7bb0e258aefe sudo docker logs --timestamps=true 7bb0e258aefe > 7bb0e258aefe.log 終端A: sudo docker logs --follow 7bb0e258aefe 終端B: sudo docker attach 708cc7ec0f23 (隨便執行一些命令能夠看到終端A會有實時輸出)
docker inspect: 顯示鏡像或容器的詳細信息ui
sudo docker inspect 7bb0e258aefe sudo dockerinspect --format "{{.State.Pid}}" 7bb0e258aefe
sudo docker stop 7bb0e258aefe
sudo docker start 7bb0e258aefe
sudo docker restart 7bb0e258aefe
docker cp c3f279d17e0a:/home/hyzhou/answer.txt . 將鏡像中的/home/hyzhou/answer.txt文件拷貝到當前目錄下
docker rm my_ubuntu 刪除容器 docker rm 708cc7ec0f23 刪除容器 docker rm $(docker ps -a -q) 刪除全部容器
sudo docker top 708cc7ec0f23 sudo docker top 708cc7ec0f23 aux
A終端: sudo docker events 終端A等待Docker系統信息 sudo docker events --since 1378216169 sudo docker events --since '2013-09-03' sudo docker events--since '2013-09-03 15:49:29' sudo docker events --since'2013-09-03 15:49:29 +0200CEST' sudo docker events > docker.log & 後臺記錄Docker的容器事件 B終端: sudo docker restart 708cc7ec0f23 從B終端關閉容器 A終端顯示: 2014-09-06T23:08:21+08:00708cc7ec0f23a5ec898c9d6308e9767edb66b863e96352ca6e030f0a5557f3b2:(fromubuntu:latest) die 2014-09-06T23:08:22+08:00708cc7ec0f23a5ec898c9d6308e9767edb66b863e96352ca6e030f0a5557f3b2:(fromubuntu:latest) start 2014-09-06T23:08:22+08:00708cc7ec0f23a5ec898c9d6308e9767edb66b863e96352ca6e030f0a5557f3b2:(fromubuntu:latest) restart
sudo docker ps -a CONTAINERID IMAGE COMMAND CREATED STATUS b705fc4f4a50 new:latest "/bin/bash" 49 seconds ago Up 49 seconds 708cc7ec0f23 ubuntu:latest "/bin/bash" 9 minutes ago Up 9 minutes sudo docker diff 7bb0e258aefe C/root A/root/new.txt sudo docker diff b705fc4f4a50
sudo docker ps ID IMAGE COMMAND CREATED STATUS c3f279d17e0a ubuntu:12.04 /bin/bash 7 days ago Up 25 hours 197387f1b436 ubuntu:12.04 /bin/bash 7 days ago Up 25 hours docker commitc3f279d17e0a Hyzhou/my_ubuntu:3.2.3 docker commit -a "Hyzhou<hyzhou@qq.com>" -m "addthe new software" c3f279d17e0aHyzhou/my_ubuntu:3.2.3 docker images REPOSITORY TAG ID CREATED VIRTUAL SIZE Hyzhou/my_ubuntu 3.2.3 f5283438590d 16 seconds ago 335.7 MB
例子: sudo docker tag ubuntu:latest hyzhou/my_ubuntu:3.2.3 給ubuntu:latest打上新TAG:hyzhou/my_ubuntu:3.2.3 sudo dockertag eb601b8965b8 ubuntu:latest 給eb601b8965b8鏡像打上TAG: ubuntu:latest(會轉換原有的TAG指向) docker save: 將image保存爲tar壓縮文件 docker save [OPTIONS] IMAGE [IMAGE...] -o, --output="" 寫入到一個文件中做爲輸出,默認是標準輸出流 例子: docker save --output ubuntu.tar ubuntu:latest 將Ubuntu的最新鏡像打包爲ubuntu.tar docker save ubuntu:latest > ubuntu.tar 將Ubuntu的最新鏡像打包爲ubuntu.tar
docker load --input ubuntu.tar 讀取ubuntu.tar做爲鏡像 docker load < ubuntu.tar 讀取ubuntu.tar做爲鏡像
例子: sudo docker export my_ubuntu > ubuntu.tar 將Ubuntu的最新鏡像打包爲ubuntu.tar docker import: 加載容器系統文件 docker import URL|- [REPOSITORY[:TAG]] 例子: sudo docker import http://example.com/exampleimage.tgz cat exampleimage.tgz | sudodocker import -exampleimagelocal:new