windows 7, docker 1.3.2,當前使用的容器名爲aoct,ID爲614122c0aabb。docker
能夠start + 容器名
shell
$ sudo docker start aoct
或start + 容器ID
ubuntu
$ sudo docker start 614122c0aabb
查看如今正在運行的容器:windows
$ sudo docker ps
還能夠用docker restart
重啓。bash
Docker容器從新啓動時,會沿用docker run
命令指定的參數來運行,因此從新啓動後會運行一個交互式會話shell。也能夠用docker attach
命令從新附到該容器的會話上:學習
$ sudo docker attach aoct
如今就從新回到容器的巴士提示符。spa
也能夠用容器ID:3d
$ sudo docker attach 614122c0aabb
除了這些交互式運行的容器(interactive container),也能夠建立長期運行的容器。守護式容器(daemonized container)沒有交互式會話,適合運行應用程序和服務。大多數時候是須要以守護式來運行容器。rest
能夠經過添加 -d 參數來實現,建立一個叫aofo的容器:日誌
sudo docker run --name aofo -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
上面的命令會讓容器在後臺運行。使用了一個while
循環,改循環會一直打印hello world
,知道容器或其進程中止運行。
與以前建立的容器相比,沒有返回shell會話,只是返回了一個容器ID。
查看如今正在運行的容器:
$ sudo docker ps
上面建立了一個在後臺運行while
循環的守護型容器,能夠用docker logs
查看容器日誌:
$ sudo docker logs aofo
能夠在命令後使用-f
參數來健康Docker日誌,這與tail -f
很是類似:
$ sudo docker logs -f aofo
而後就會看到一直輸出hello world。能夠經過ctrl+c
來退出監控個。
$ sudo docker top aofo
能夠看到容器內的全部進程(主要是while循環)、運行進程的用戶、進程ID:
Docker 1.3 以後能夠經過docker exec
命令在容器內部額外啓動新進程。能夠在容器內運行兩種進程:後臺任務、交互式任務。後臺任務在容器內運行且沒有交互需求,交互式二年五則保持在前臺運行。對於須要早容器內部貸款shell
的任務,用交互式任務.
$ sudo docker exec -d daemon aofo touch /etc/new_config_file
代碼解釋:-d
標誌標明要運行一個後臺進程,後面指定要在內部執行這個命令的容器名,我用的是aofo
。整句命令在aofo容器內建立了一個空文件夾new_config_file
。
$ sudo docker exec -t -i aofo /bin/bash
代碼解釋:
和運行交互容器一一,這裏-t
、-i
標誌位指明建立TTY並捕捉STDIN。後面指定要在內部執行這個命令的容器名,我用的是aofo
。整句命令在aofo容器內建立新的bash對話,就能夠在該容器運行其餘命令了。
docker exec
命令是在 Docker 1.3 引入的,以前版本不支持。可用nsenter
命令
docker stop
命令:
$ sudo docker stop aofo
也能夠用容器ID只帶容器名稱:
$ sudo docker stop ddd958443007
若是想快速中止容器,還能夠用docker kill
命令:
$ sudo docker kill aofo
能夠用docker ps
命令產科當前運行的容器。也能夠用docker ps -n x
,該命令會顯示最後x個容器,不論這些容器是運行仍是中止的。
$ sudo docker ps -n 2
用docker inspect
獲取更多的容器信息:
$ sudo docker inspect aofo
能夠用-f
或者--format
標誌來選定查看結果。
查看容器運行狀態:
$ sudo docker inspect --format='{{ .State.Running }}' aofo
查看容器IP地址:
docker@boot2docker:~$ sudo docker inspect --format='{{ .NetworkSettings.IPAddress }}' aofo
我沒有設置,因此返回空:
-f
和--format
標誌支持完整的GO語言模板。用它進程查詢時,能夠重複利用GO語言米板的優點。
能夠同時制定多個容器,並顯示每一個容器的結果:
$ sudo docker inspect --format='{{ .State.Running }}' aofo aoct
除了查看容器,還能夠瀏覽
/var/lob/docker
目錄瞭解Docker的工做原理,該目錄存放着Docker鏡像、容器、容器配置。全部容器都保存在/var/lib/docker/containers
目錄下。
運行中的容器沒法刪除,必須先中止。使用docker rm
:
$ sudo docker rm 容器ID
一次性刪除全部容器:
$ sudo docker rm `docker ps -a -q`
這不是常規命令,只是小技巧。docker ps
列出全部現有的容器,-a
標誌列出全部(all)容器,-q
返回容器ID。這樣就獲得了容器ID列表,並傳給docker rm
命令,從而達到刪除全部容器的目的。
【本人的學習筆記,主要是對《個人第一本Docker書》、《Docker —— 從入門到實踐》的學習記錄,並結合其餘各類資源的學習。】