歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> docker學習筆記2

docker學習筆記2

日期:2017/3/3 12:19:52   编辑:Linux技術

博主是在Ubuntu14.04最小化安裝的狀態下進行docker學習的。教材是《第一本docker書》

安裝docker

ubuntu14.04默認就有docker的安裝源,所以安裝很簡單:
[code]# apt-get install lxc-docker

確保docker准備就緒

使用以下代碼察看docker功能清單:
[code]#docker info

info命令會返回所有容器和鏡像的數量、docker的執行驅動和存儲驅動(execution and storage driver)以及docker的基本配置。

運行第一個容器

1.運行容器命令如下:
[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刪除

Copyright © Linux教程網 All Rights Reserved