最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Docker安裝與使用教程

2020-03-20 10:31 作者:Iammyself001  | 我要投稿

CentOS安裝配置卸載Docker

前提

1.只能是64位CPU

2.內(nèi)核3.8以上(RHEL/CentOS 6.5,F(xiàn)edora Core 19以上),沒辦法,2014年才出現(xiàn),2017年才開始有熱度,注意:6.8的版本與7安裝方式不太一樣。

3.內(nèi)核必須支持一種適合的存儲驅(qū)動(Device Manager;AUFS;vfs;btrfs;)

如果沒有的話,需要安裝

4.內(nèi)核必須支持并開啟cgroup和nameSpace功能

YUM安裝

一、安裝依賴包

三、更新yum緩存

四、安裝CE版


五、啟動

六、檢查

七、執(zhí)行一個實例——hello world


鏡像加速

登入自己阿里云賬號https://dev.aliyun.com/search.html(作為計算機從業(yè)者是應該有的)

一、CentOS7

1.新建deamon.json

2.加載配置文件

3.重啟服務

架構(gòu)

常用命令

一、幫助命令

1.docker help

2.官方文檔https://docs.docker.com/

二、鏡像命令

1.列出本地鏡像

2.查詢鏡像(查詢是在https://hub.docker.com/,但是下載是在阿里云下載)

3.下載鏡像

4.刪除鏡像

三、容器命令

前提:有鏡像才能有容器

1.新建并啟動容器

1)以CentOS為模板生成一個容器,其中的110850f96301是新生成容器的地址

2)使用鏡像在后臺模式啟動一個容器

$> docker run -d centos

容器運行的命令如果不是那些一直掛起的命令(比如運行top,tail),就是會自動退出的。所以下面的方法就沒問題。

$>?docker?run?-d?centos:7.6.1810?/bin/sh?-c?"while?true;do?echo?'YangBingxue?is?the?most?handsome?man?in?NCEPU';sleep?2;done"

    3)-P隨機端口

    4)-p指定端口

    2.列出當前所有正在運行的容器

    還記得之前的叫“mycentos”

    3.退出容器

      回來

      docker exec -it

      4.啟動容器

      但是有時會出錯,啟動mysql出問題,根據(jù)提示信息作出方案,kill端口。

      5.重啟容器

      四、容器管理

      1.查看容器日志信息



      2.查看容器內(nèi)運行的進程

      3.查看容器內(nèi)部細節(jié)

      4.從容器拷貝文件到主機上

      5.提交容器成為鏡像

      比如:我們打算把基于Nginx的誠實網(wǎng)站提交

      6.提交到阿里云

      鏡像原理

      1.什么是鏡像

      鏡像是一種輕量級、可執(zhí)行的獨立軟件包,用來打包軟件運行環(huán)境和基于運行環(huán)境開發(fā)的軟件,它包含運行某個軟件所需的所有內(nèi)容,包括代碼、運行時、庫、環(huán)境變量和配置文件。


      2.UnionFS(聯(lián)合文件系統(tǒng))

      Union文件系統(tǒng)(UnionFS)是一種分層、輕量級并且高性能的文件系統(tǒng),它支持對文件系統(tǒng)的修改作為一次提交來一層層的疊加,同時可以將不同目錄掛載到同一個虛擬文件系統(tǒng)下(unite several directories into a single virtual filesystem)。

      Union文件系統(tǒng)是Docker鏡像的基礎。鏡像可以通過分層來進行繼承,基于基礎鏡像(沒有父鏡像),可以制作各種具體的應用鏡像。

      特性:一次同時加載多個文件系統(tǒng),但從外面看起來,只能看到一個文件系統(tǒng),聯(lián)合加載會把各層文件系統(tǒng)疊加起來,這樣最終的文件系統(tǒng)會包含所有底層的文件和目錄。


      3.Docker鏡像加載原理

      Docker的鏡像實際上由一層一層的文件系統(tǒng)組成,這種層級的文件系統(tǒng)UnionFS。

      bootfs(boot file system)主要包含bootloader和kernel,bootloader主要是引導加載kernel,Linux剛啟動時會加載bootfs文件系統(tǒng),在Docker鏡像的最底層是bootfs。這一層與我們典型的Linux/Unix系統(tǒng)是一樣的,包含boot加載器和內(nèi)核。當boot加載完成之后整個內(nèi)核就都在內(nèi)存中了,此時內(nèi)存的使用權(quán)已由bootfs轉(zhuǎn)交給內(nèi)核,此時系統(tǒng)也會卸載bootfs。

      rootfs(root file system),在bootfs之上。包含的就是典型Linux系統(tǒng)中的/dev,/proc,/bin,/etc等標準目錄和文件。rootfs就是各種不同的操作系統(tǒng)發(fā)行版,比如Ubuntu,Centos等等。

      對于一個精簡的OS,rootfs可以很小,只需要包括最基本的命令、工具和程序庫就可以了,因為底層直接用Host的kernel,自己只需要提供rootfs 就行了。由此可見對于不同的linux發(fā)行版,bootfs基本是一致的,rootfs會有差別,因此不同的發(fā)行版可以公用bootfs。


      4.鏡像分層

      以pull為例,pull一個nginx需要同時下載多層。

      安裝TomCat就是這種感覺

      鏡像分層最大的一個好處就是:共享資源

      eg:有多個鏡像都從相同的base鏡像構(gòu)建而來,那么宿主機只需在磁盤上保存一份base鏡像,同時內(nèi)存中也只需加載一份base鏡像,就可以為所有容器服務了。而且鏡像的每一層都可以被共享。




      容器數(shù)據(jù)卷

      一、容器數(shù)據(jù)卷特點:

      數(shù)據(jù)卷可在容器之間共享或重用數(shù)據(jù)

      卷中的更改可以直接生效

      數(shù)據(jù)卷中的更改不會包含在鏡像的更新中

      數(shù)據(jù)卷的生命周期一直持續(xù)到?jīng)]有容器使用它為止

      主機與容器間的數(shù)據(jù)共享


      二、添加容器數(shù)據(jù)卷

      1.命令添加

      1)?run -v

      這時在host上在檢查的時候,新生成一個新文件夾my_data_volume,contain上面也新生成一個新文件夾 data——volume_container。


      2)檢查是否掛載成功

      3)讀寫操作

      主機touch test,container立即出現(xiàn)test;

      container vi test,Host cat立即出現(xiàn)結(jié)果

      即使容器退出,主機依舊保存數(shù)據(jù)不變;

      Host在container退出的時候touch test3,container在登入也會出現(xiàn)

      我上面的出錯了,應該是docker start ?bc654a0dcc2c,但是盡管docker ps是兩個不同的進程,但是共享文件夾里面的是一樣的內(nèi)容。

      可以掛載可讀模式(僅對于container)

      查看細節(jié)

      2.DockerFile添加

      1)建立文件夾,在DockerFIle使用volume給鏡像添加一個或多個數(shù)據(jù)卷

      FROM centos

      VOLUME ["/data_volume1","/data_volume2"]?

      CMD echo "FInish,YangBingxue_is_the_most_handsome_man_in_NCEPU"

      CMD?/bin/bash

      2)build

      3)檢查是否掛載成功

      主機文件位置一般在/var/lib/docker/volumes/下面

      4)讀寫操作

      三、數(shù)據(jù)卷容器 --volumes-from

      A容器掛載數(shù)據(jù)卷,其它容器(B,C)通過掛載這個A(父容器)實現(xiàn)數(shù)據(jù)共享,掛載數(shù)據(jù)卷的容器,稱之為數(shù)據(jù)卷容器。

      下面的docker1就是父容器,docker2與docker3都掛載到docker1上面,是docker1的子容器。

      由此可見,父容器的文件,在子容器當中會出現(xiàn),子容器出現(xiàn)的文件在父容器也會出現(xiàn),即使刪除父容器,子容器的文件依然在

      所以,容器之間配置信息的傳遞,數(shù)據(jù)卷的生命周期一直持續(xù)到?jīng)]有容器使用它為止


      DockerFile

      一、什么是DockerFile

      1.DockerFile是用來構(gòu)建Docker鏡像的構(gòu)建文件,是由一系列命令和參數(shù)構(gòu)成的腳本。

      2.構(gòu)建過程:

      1)編寫DockerFIle文件

      2)docker build

      3)docker run


      3從應用軟件的角度來看,Dockerfile、Docker鏡像與Docker容器分別代表軟件的三個不同階段,

      Dockerfile是軟件的原材料

      Docker鏡像是軟件的交付品

      Docker容器則可以認為是軟件的運行態(tài)。

      二、DockerFIle內(nèi)容

      1.基礎常識

      每條保留字指令都必須為大寫字母且后面要跟隨至少一個參數(shù)

      指令按照從上到下,順序執(zhí)行

      #表示注釋

      每條指令都會創(chuàng)建一個新的鏡像層,并對鏡像進行提交

      2.保留字

      1)FROM基礎鏡像,當前鏡像是基于那個鏡像的

      2)MAINTAINER:鏡像維護者的姓名和郵箱

      3)RUN:容器構(gòu)建時需要運行的命令

      4)EXPOSE:當前容器對外暴露的接口

      5)WORKDIR:指定在創(chuàng)建容器后,終端默認登入進來的工作目錄

      6)ENV:用來在構(gòu)建鏡像過程中設置環(huán)境變量

      7)COPY:拷貝文件和目錄到鏡像中

      8)ADD:COPY的壓縮文件+解壓

      9)VOLUME:容器數(shù)據(jù)卷,用于數(shù)據(jù)保存和持久化

      10)CMD:指定一個容器啟動時運行的命令

      如果有多個CMD的話,只執(zhí)行最后一個CMD,CMD也可以被docker run 之后的命令替換。


      11)ENTRYPOINT:指定一個容器啟東時運行的命令

      全部ENTRYPOINT全部執(zhí)行


      12)ONBUILD:當構(gòu)件一個被集成的DockerFile是運行命令,父鏡像在被子鏡像繼承后父鏡像的Onbulid被觸發(fā)。

      總結(jié)

      如果有建議和看法,可以在文末留言,謝謝。


      Docker安裝與使用教程的評論 (共 條)

      分享到微博請遵守國家法律
      抚松县| 德格县| 海伦市| 庐江县| 南城县| 綦江县| 吴桥县| 昌黎县| 大名县| 鹤壁市| 翼城县| 彩票| 思茅市| 保亭| 高碑店市| 汽车| 蓝田县| 固镇县| 阿坝县| 永修县| 乌什县| 读书| 定南县| 长泰县| 洪雅县| 霍州市| 凭祥市| 纳雍县| 新源县| 三穗县| 伊吾县| 弋阳县| 宜城市| 顺昌县| 安宁市| 屯门区| 阳信县| 阿鲁科尔沁旗| 南城县| 南乐县| 于都县|