新聞中心
今天這篇文章我們主要了解一下Docker容器管理的一些基礎及其命令的使用方法。

01 運行容器
我們先來看看運行容器的命令格式,具體如下:
- 1. docker container run [OPTIONS] IMAGE [COMMAND [ARGS...]]
docker run命令后面常跟的參數(shù)如下:
1) -i 或 --interactive, 交互模式。
2) -t 或 --tty, 分配一個偽終端。
3) --rm 在容器退出后自動刪除容器。
4) -p 將容器的端口映射到主機。
5) -v 或 --volume, 指定數(shù)據(jù)卷
現(xiàn)在我們創(chuàng)建一個容器然后運行命令"echo 'Hi chenge'"如下圖所示:
- 1. docker container run ubuntu echo "HI chenge"
如上我們可以看到執(zhí)行過程如下:
1)命令后面跟的鏡像名稱系統(tǒng)會先查詢本地是否有該鏡像,如果沒有就是到遠端的鏡像倉庫進行下載
2)鏡像完成下載后會自動啟動并執(zhí)行創(chuàng)建命令后面跟的命令
3)容器執(zhí)行完命令會自動退出如上圖所示
這邊肯定有讀者問我讓容器執(zhí)行完不讓其自動退出該怎么辦。其實很簡單只要在創(chuàng)建容器時加入讓其持續(xù)運行的命令即可,如/bin/bash命令。下面我們創(chuàng)建一個容器讓其持續(xù)運行不退出,命令如下所示:
- 1. docker container run -it ubuntu /bin/bash
這邊的-it參數(shù)是打開一個偽終端,創(chuàng)建容器后我們會自動進入容器終端中,如下圖:
如果這時我們要退出終端界面該怎么辦呢,有兩種方法:
1)直接通過exit命令退出,執(zhí)行這個命令后我們退出該終端的同時該容器也會停止運行
2)通過"Ctrl+P"與"Ctrl+q"的命令進行退出,這種方式退出容器會進入后臺運行并不會停止運行
其實我們可以直接在創(chuàng)建容器時加入-d的命令,讓容器自動在后臺運行而不需要再進入終端再退出這樣繁瑣的操作具體命令如下:
1. docker container run -itd ubuntu /bin/bash
02容器創(chuàng)建
上面章節(jié)介紹的docker run命令其實并不只是創(chuàng)建了容器,它在創(chuàng)建的容器的同時運行了容器。我們現(xiàn)在來介紹只創(chuàng)建容器但不運行容器的命令,具體命令格式如下:
- 1. # 創(chuàng)建容器命令
- 2. docker container create [OPTIONS] IMAGE [COMMAND] [ARG...]
上面命令會創(chuàng)建指定鏡像的容器,但不會運行該容器,其后面常跟的參數(shù)如下所示:
1)--name 給創(chuàng)建的容器指定一個名字
2)--hostname 設置容器主機名
3)--network 指定容器網(wǎng)絡類型,目前容器常用的網(wǎng)絡類型有none、host及bridge,如果創(chuàng)建容器不指定網(wǎng)絡類型默認的是使用bridge也就是橋接docker0上,在下面的章節(jié)中我們會詳細講解容器網(wǎng)絡類型敬請關注
4)--ulimit 設置容器資源限制,其命令格式與linux的ulimit用法一致,參數(shù)如下所示:
現(xiàn)在我們通過容器創(chuàng)建命令創(chuàng)建一個容器,同時設置容器名稱為test1,容器的主機名為test,網(wǎng)絡我們使用docker默認網(wǎng)絡(bridge),同時限制容器的進程范圍為3000至4000如下所示:
當容器創(chuàng)建成功后會主動打印其ID,容器的ID有兩種格式:
1)UUID長標格式也就是創(chuàng)建好打印的那一串字符
2)UUID短標格式,它是長標格式的縮寫
在我們操作容器時既可以用長標UUID也可以用短標UUID(這邊要注意短標UUID有可能重復畢竟是截的長標的UUID部分內容),同時還可以通過容器name來操作容器。
03 容器刪除
刪除容器的具體命令如下:
- 1. # 刪除容器
- 2. docker container rm [OPTIONS] CONTAINER [CONTAINER...]
我們現(xiàn)在把剛才創(chuàng)建的test1容器進行刪除如下所示:
如果我們要批量刪除容器可以執(zhí)行如下命令:
- 1. # 批量刪除容器,其中docker container ls -aq是列出當前存在的所有容器的UUID,-f 為強制刪除
- 2. docker container rm -f $(docker container ls -aq)
我們現(xiàn)在刪除系統(tǒng)中所有容器具體如下所示:
04 容器啟動、停止與重啟
我們先來看看容器啟動的命令格式
- 1. # 啟動容器
- 2. docker container start [OPTIONS] CONTAINER [CONTAINER...]
我們將剛才創(chuàng)建的test1容器進行啟動,啟動后容器的狀態(tài)將從created變?yōu)閡p狀態(tài),具體如下所示:
接著我們來看看容器停止的命令格式
- 1. # 停止容器
- 2. docker container stop CONTAINER [CONTAINER...]
我們將剛才啟動的容器進行停止具體如下所示:
現(xiàn)在我們將停止的容器test1通過容器的重啟命令進行重新啟動,重啟的命令格式如下所示
- 1. # 重啟容器
- 2. docker container restart CONTAINER [CONTAINER...]
05 容器的暫停與恢復
容器暫停的命令格式如下:
- 1. # 暫停容器
- 2. docker container pause CONTAINER [CONTAINER...]
我們將剛才重啟的容器進行暫停,此時容器狀態(tài)會從UP狀態(tài)切換到paused的狀態(tài)
現(xiàn)在我們再將這個暫停的容器進行恢復,容器恢復命令如下所示
- 1. # 恢復容器
- 2. docker container unpause CONTAINER [CONTAINER...]
06 進入運行中容器、執(zhí)行容器命令、容器日志管理及容器進程管理
進入容器的前提是容器在創(chuàng)建時開了偽終端,具體如下所示:
- 1. # 進入容器
- 2. docker container attach [OPTIONS] CONTAINER
其實我們還有一種方式進入容器,也就是我們接下來要講的執(zhí)行容器命令exec,我們再通過exec來進入容器據(jù)如下所示:
- 1. # exec執(zhí)行命令格式
- 2. docker container exec [OPTIONS] CONTAINER COMMAND [ARG...]
attach與exec命令進入容器主要的區(qū)別如下:
1)attach是直接進入容器的終端不會啟動新的進程,在查看容器終端輸出多用該命令
2)exec是在容器中打開新的終端,并且啟動了新的進程,我們一般主要以該命令進行容器操作
接下來我們學習一下容器的日志管理,容器日志管理命令格式如下:
- 1. # 查看容器日志
- 2. docker container logs [OPTIONS] CONTAINER
我們重新創(chuàng)建一個test2容器通過執(zhí)行shell循環(huán)語句讓其不停的打印"HI chenge"字符串,具體如下
我們通過容器日志查看命令來查看在容器終端中打印的信息
最后我們來學習怎么查看容器中的進程,查看容器進程的命令格式如下所示
- 1. # 查看容器進程
- 2. docker container top CONTAINER
我們查看一下剛才創(chuàng)建的test1與test2的容器進程具體如下:
以上就是我們Docker容器管理的全部內容,是不是很簡單這邊建議大家跟著文章進行實操一遍,這樣會更加容易的記住這些容器常用管理命令。
網(wǎng)站標題:IT工程師都需要掌握的容器技術之Docker容器管理
文章起源:http://m.fisionsoft.com.cn/article/ccdhesg.html


咨詢
建站咨詢
