博主是在Ubuntu14.04最小化安裝的狀態下進行docker學習的。教材是《第一本docker書》
[code]# apt-get install lxc-docker
[code]#docker info
info命令會返回所有容器和鏡像的數量、docker的執行驅動和存儲驅動(execution and storage driver)以及docker的基本配置。
[code]# docker run -i -t ubuntu /bin/bash
-i 參數保證容器中的stdin開啟,目的是為了保證交互式shell的運行
-t 參數為要創建的容器分配一個偽tty終端
但是博主在剛安裝好docker的時候運行這一命令,因為本地沒有Ubuntu的鏡像,理論上來說docker會自動從公共docker hub下載鏡像,不過第一次下載速度太慢,大家需要耐心等待。
也可以運行
#docker pull ubuntu命令,先將Ubuntu鏡像下載到本地,默認使用的鏡像標簽是latest。 然後再運行
docker run -i -t ubuntu /bin/bash
這時候我們的容器就創建成功了,該容器會被自動分配一個ID,一般是一個雜亂的字符串
結果如下:
我們已經在Ubuntu中又運行了一個Ubuntu容器,可以在該容器be08178f33ae進行各種操作:
2.退出該容器:
[code]#exit需要注意的是,退出該容器後,該容器停止了運行,但容器仍然是存在的,可以使用
#docker ps -a來查看當前系統中的容器列表:
3.容器命名
–name <容器名>
[code]docker run --name my_first_container -i -t ubuntu /bin/bash
[code]docker run --name demon_container -d ubuntu /bin/bash -c "while true; do echo hello world;sleep 1;done"
-d參數 docker會將該容器放到後台運行
-c參數 在該容器中使用一些命令,上例中則是使用了一個while循環,循環打印hello world直到該容器停止運行
通過這些參數組合,docker run並不會將交互式的shell顯示出來,而僅僅返回了一個容器ID,我們依舊處在主機的命令行終端,此時我們可以執行
docker ps命令,可以看到一個正在運行的容器。
[code]docker logs demon_container
擴展選項有:
獲取後10行:
docker logs --tails 10 demon_container為每條日志加上時間戳:
docker logs -ft demon_container
查看容器內進程
[code]#docker top demon_container在容器內部運行進程
使用 docker exec
[code]docker exec -d demon_container touch /etc/new_config_file此命令表示後台運行一個容器demon_container,並且在該容器中創建了一個文件
[code]docker inspect除了使用docker ps 命令查看docker 信息之外我們還可以使用docker inspect 命名來獲取更加詳細的信息。
博主將輸出的詳細信息重定向到了一個文件
docker inspect demon_container >> inspect_info然後vim打開inspect_info顯示如下:
我們甚至可以使用-f或–format來選定選項查詢
[code]# docker inspect --format='{{ .State.Running }}' demon_container上述命令會返回容器的狀態
[code]# docker inspect --format '{{ .NetworkSettings.IPAddress }}' \demon_container上述命令會返回該容器的IP地址。
[code]docker rm運行中的容器無法直接刪除,必須先stop或者kill掉才能rm刪除