Docker學習過程 (4-容器進階)

今天繼續上次的內容,補充容器的其他相對高大上一些的操作,其實也不難,關鍵要靜下心來看。這次有的命令會進入容器內部。
tip:很多時候容器或鏡像的名字或ID都起相同作用。

概念

  • 提交容器:把原始鏡像和對原始鏡像的操作固化,形成一個新的鏡像。
  • 進入容器:比如說我用Docker運行了一個Ubuntu系統,那要看容器裏面的Ubuntu系統就要進入容器
  • 終端:一般就是指屏幕。輸出到終端就是在屏幕上顯示。

基本命令

sudo docker top $container			#查看容器$container內部的進程,注意是容器內,我也感覺這個有點奇怪
sudo docker inspect $container 		#查看$container的信息,可加入 -f 過濾,具體見下面例子
sudo docker logs $log 				#以後臺守護形式啓動的容器,程序輸出結果不在終端直接顯示,這時可通過日誌查看
sudo docker exec $container $cmd 	#讓容器$container內部執行$cmd命令
sudo docker commit $container				#把當前容器提交成鏡像,會生成一個新的鏡像
sudo docker export -o $des $container 		#把container導出成$des
sudo docker export $container > $des		#同上
sudo docker import -i $source		 		#導入$source
sudo docker import < $source 				#同上

實踐

查看容器進程和狀態
sudo docker run --name web nginx
sudo docker top web			#打開一個新的終端輸入,因爲運行的web會佔用原來的終端
sudo docker inspect -f "{{ .State }}" web
sudo docker inspect web

在這裏插入圖片描述

查看容器日誌
sudo docker run -d --name log_demo ubuntu /bin/bash -c 'for((i=0;i<5;i++));do echo "time $i";sleep 1; done;' 		#本地沒有ubuntu鏡像會先下載
sudo docker logs log_demo

在這裏插入圖片描述
在容器中執行命令

sudo docker start web								#開始之前停止的容器
sudo docker exec web ls /var/log/nginx   			#查看容器中 /var/log/nginx 下的文件
sudo docker exec web tail /var/log/nginx/access.log #查看容器中/var/log/nginx/access.log的內容

第3條命令沒有在終端輸出信息,以後學多了再回頭看怎麼回事吧。書上寫的是能輸出
在這裏插入圖片描述

提交容器更改與導入導出容器
sudo docker run -it centos:7 /bin/bash	#安裝個centos操作系統,並進入內部
yum install -y crontabs
exit
sudo docker ps -l -a				 	#-l 選項列出最近(latest)的容器
sudo docker images
sudo docker commit  gl/crontab:latest
sudo docker images

在這裏插入圖片描述
在這裏插入圖片描述

至此,Docker的容器知識瞭解差不多了,下面會寫一下更有用更有趣的數據卷和網絡。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章