1. 程式人生 > >Docker學習筆記(一)

Docker學習筆記(一)

圖片 學習 技術分享 宿主機 -s httpd ont title 所有

Docker組件:images,containers,networks,volumes,plugins,other objects.
安裝:https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/下載此repo文件並修改,它裏面默認是指向docker官方鏡像,使用時會有問題,需要修改指向https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/7/x86_64/stable/技術分享圖片
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/7/x86_64/stable/ 技術分享圖片
修改如下:技術分享圖片另外,在安裝docker-ce時需要extras源來安裝container-selinux,配置源如下:技術分享圖片安裝完後,配置鏡像站,國內都需要用鏡像加速站技術分享圖片以上是官方鏡像站,但是不穩定,可以到阿裏雲上生成私有加速地址
安裝完成後,一些基本信息查看:docker version查看版本信息,查看服務端版本信息需要先啟動docker服務#systemctl start docker.service#docker version技術分享圖片#docker info 查看containers,images,storage,宿主機操作系統技術分享圖片
常用docker命令,使用docker --help查看技術分享圖片技術分享圖片
技術分享圖片技術分享圖片個人覺得help中對於這些命令的意義和用法已經解釋的比較清楚了還可以使用docker help [Managements Commands]查看具體管理命令的用法例如,技術分享圖片
查看所有本地鏡像:技術分享圖片
上搜索docer hub上的image (需要聯網)技術分享圖片在docker hub上搜索nginx,其中官方提供的鏡像中還有小版本alpine版,它不包含調試工具,所以可以用來做測試示例,下載鏡像技術分享圖片刪除鏡像技術分享圖片查看容器:docker container ls [-a] 或者docker ps [-a]技術分享圖片容器在宿主機上是一個進程,上圖中的command表示容器默認運行的程序(命令)運行一個容器的命令:docker [container] run .......技術分享圖片docker run常用的參數:--name 指定容器名稱,格式string-d 即--detach 讓容器運行在後臺--network 指定讓容器選擇使用哪個網絡,默認bridge-t 即--tty 如果容器需要運行在交互式接口,這個參數使之有一個終端可操作-i 即--interactive 讓容器保持在交互式接口狀態,通常和-t同時使用--rm 表示當容器停止時自動刪除容器問題1,如何創建一個容器:技術分享圖片
這裏就創建了一個容器式的操作系統,並且它的主機名就是容器ID技術分享圖片上圖可以看到STATUS項,容器是退出狀態,並且docker container ls沒有正在運行的容器,因為一開始就是讓centos1運行在前臺,在exit時容器就自動停止了。讓容器在後臺持續運行:技術分享圖片技術分享圖片可以再進入容器看看之前創建的文件是否還存在技術分享圖片
問題2,如何在一個微系統容器中運行httpd服務busybox是一個相對完整的簡單的微系統docker image,鏡像中已經包含了httpd服務技術分享圖片container中80端口開啟技術分享圖片
宿主機上的虛擬橋接網卡:技術分享圖片訪問container提供的http服務技術分享圖片
問題3,我們在使用容器來運行服務時,不必每次都運行一個微系統,直接使用需要的服務鏡像,例如nginx 技術分享圖片那如何訪問此服務呢?還是之前說的如果不指明網絡,創建容器是自動會使用虛擬橋接網絡模式。這裏只需要docker inspect來查看指定容器被分配的IP即可技術分享圖片技術分享圖片技術分享圖片因此我們可以通過宿主機訪問http服務了:技術分享圖片
問題4,如果我們需要進入一個已啟動的容器中進行調試服務呢?通常服務都是運行在容器的前臺,這樣才能避免容器一啟動即退出。我們需要接入容器那肯定需要一個運行在前臺的交互式界面。但是服務型的容器是不會啟用shell程序的,所以我們需要在容器中服務的進程基礎是開啟一個進程並獨立運行,這時候就會用到exec方式例如,接著上面的nginx容器,假如此時我一定要進入容器調一些配置,那進入方法如下:技術分享圖片技術分享圖片
問題5,上面的nginx容器運行後,其日誌放在哪的,如何查看呢?這個問題還是要回到之前提到的概念:容器運行只有服務本身一個進程。它不需要像通常的操作系統中那樣把程序的日誌存儲起來(因為有其它程序所以必須儲存在一個文件中),而容器中服務即主程序,它直接將日誌傳給控制臺即可(沒有其它程序會用到)因為整個容器只有它一個主程序。以上可以驗證:技術分享圖片真正的日誌可以使用docker container logs獲取:技術分享圖片



來自為知筆記(Wiz)

Docker學習筆記(一)