Docker容器介紹,顯像管理

2021-09-29 08:56:05 字數 3668 閱讀 7370

官網:

github:

開源的容器引擎,可以讓開發者打包應用以及依賴的庫,然後發布到任何流行的linux發行版本上,乙隻很方便。

有go語言編寫,基於apache2.0協議發布。

基於linux kernel,win下執行需要借助乙個vm來實現

docker從1.13x開始,版本分為社群版ce和企業版ee。

docker是乙個基於lxc(一種核心虛擬化技術,可以提供輕量級的虛擬化)的高階容器引擎。

docker設想的是交付執行環境如同海運,os如同乙個貨輪,每乙個在os基礎上的軟體都如同乙個貨櫃,使用者可以通過標準化手段自由組裝執行環境,同時貨櫃的內容可以自己定義,亦可以由專業人員組裝執行環境。

docker架構:

使用客戶端和服務端(c/s)架構模式,使用遠端api來管理和建立docker容器。docker容器通過docker映象來建立。容器與映象的關係類似物件導向程式設計中的物件與類。

docker優勢:

啟動非常快,秒級實現

資源利用率高,一台高配置伺服器可以跑上千個docker容器。

更快的交付和部署,一次性建立後,可以在任意地方執行

docker核心概念:

映象:是乙個唯讀的模板,類似於安裝系統用到的iso檔案,通過映象來完成各種應用的部署。

容器:映象類似於作業系統,而容器類似於虛擬機器本身。它可以被啟動,開始,停止,刪除等操作,每個容器都是相互隔離的。

倉庫:存放映象的乙個場所,分為公開和私有。最大的公開倉庫是docker hub(hub.docker.com),國內公開倉庫(dockerpool.com)。

curl  -o /etc/yum.repos.d/docker.repo
安裝完成之後,檢查docker的版本:

yum list |grep docker

containerd.io.x86_64 1.2.10-3.2.el7 @docker-ce-stable

docker-ce.x86_64 3:19.03.4-3.el7 @docker-ce-stable

yum install -y docker-ce
systemctl start docker
它會自動新增一些iptables規則,這些規則如果清除掉,可能會造成docker啟動或者執行出錯,所以最好不好去刪除。當然了,每次重啟docker,它會自動生成:

檢視防火牆規則:

iptables -nvl

docker images

repository tag image id created size

centos latest 0f3e07c0138f 5 weeks ago 220mb

對於官方的映象,查不到具體由哪些映象,但是可以搜尋,比如搜尋redhat:

docker search redhat
name                                       description                

hjd48/redhat redhat6.3x86-64 images

fbascheper/redhat-jboss-eap extensible redhat jboss eap

yjjy0921/redhat7.2 a clean redhat 7.2 image fr

crorvick/redhat redhat linux

最上面的是官方的,其他的都是第三方發布上去的,都是公共映象。

上面檢視本地映象,有幾個引數:repository,tag,images id和created

怎麼更改repository和tag呢:

更改centos:

docker tag centos lg
檢視:

docker images
lg                  latest              0f3e07c0138f        5 weeks ago         220mb

centos latest 0f3e07c0138f 5 weeks ago 220mb

發現第乙個引數被改變了,但是它和centos還是一樣的,image id是唯一標識。

tag也可以更改:

docker tag centos lg:222
冒號前面是第乙個引數,後面便是tag引數。

檢視:

lg                  222                 0f3e07c0138f        5 weeks ago         220mb
怎麼刪除映象呢:

docker rmi lg  #刪除lg

docker rmi lg:222 #刪除lg並且tag為222

如果刪除的是image id,那麼只要是相同的id,便會被刪除。

啟動映象:

docker run -itd centos
-i:表示讓容器的標準輸入開啟,-t表示分配乙個為終端,-d表示後台啟動,要把-i,-t,-d放到映象名字前面。

檢視啟動的映象:

docker ps
檢視全部的,包括停止的:

docker ps -a
進入容器(映象啟動之後就是乙個容器):

docker exec -it cc9 bash
-it後面接容器的container id(用docker ps檢視),可以不用寫全。最後要接乙個終端bash才可以進入。

docker commit -a "ligen" cc9c8f71b361 centos_with_net
-a:指定作者

-m:改變資訊

docker images

repository tag image id created size

centos_with_net latest 065c1d49bd0e 20 seconds ago 220mb

成功建立。

docker 容器和顯像管理

最開始在學習docker的時候,亂建立了很多容器,結果檢視所有容器的時候,自己嚇了一跳。下面介紹docker容器管理相關命令。命令可能需要使用sudo 檢視所有容器 首先注意區分這兩條命令,根據docker官方文件的教程 docker container ls list all running co...

docker 顯像管理

docker search命令可以用來查詢映象 比如 docker search nginx.構建映象 先建立乙個檔案,就在家目錄都可以了 touch dockerfile 再vim編輯之,如下 version 1.0.0 test from ubuntu latest maintainer run...

docker顯像管理

配置 docker加速器 vim etc docker daemon.json 重啟docker服務,再次拉取映象 拉取映象 docker pull centos檢視本地有哪些映象 docker images搜尋映象給映象打乙個標籤會生成乙個映象 將映象啟動為容器 i 表示讓容器的標準輸入開啟 t ...