Docker容器(二)

Dockerfile詳解

1.FROM:引入和開始      

       #從頭製作baseImage

       FROM scratch

       #使用已有的baseImage

       FROM centos

       #指定使用的版本

       FROM ubuntu:14.04

2.LABEL:定義一些說明信息      

        LABEL [email protected]

        LABEL version=”1.0”

        LABEL description=”xxx”

3.RUN:執行命令,每執行一條RUN,多一個分層,一般用&&合併語句,反斜槓換行

RUN yum -y update && yum -y install lrzsz \

       net-tools

RUN apt-get -y update && apt-get -y install lrzsz\

       net-tools

RUN /bin/bash -c ‘source $HOME/.bashrc;echo $HOME’

4.WORKDIR:進入或創建目錄,儘量不要使用相對路徑     

    #進入/root目錄

    WORKDIR /root

    #如果沒有會自動創建

    WORKDIR /test

    WORKDIR demo

    #輸出:/test/demo

    RUN pwd

5.ADD和COPY:將本地的文件,添加到image裏      

       #將hello添加到根目錄下

       ADD hello /

       #將tar包直接解壓到根目錄

       ADD test.tar.gz /



       #最終hello應該在 /root/test/hello

       WORKDIR /root

       COPY hello test/

6.ENV:增加Dockerfile的可讀性      

       #設置常量

       ENV MYSQL_MAJOR 5.5

       #使用常量

       $MYSQL_MAJOR

       RUN apt-get -y install mysql-server=”${MYSQL_VERSION}”

CMD和ENTRYPOINT

#shell格式

RUN apt-get -y install lrzsz

CMD echo “hello docker”

ENTRYPOINT echo “hello docker”

             

       #exec格式

       RUN [“apt-get”,”-y”,”install”,”lrzsz”]

       CMD [“/bin/echo”,”hello docker”]

       ENTRYPOINT [“/bin/echo”,”hello docker”]

 

   ENTRYPOINT使用的比CMD多一些

   ENTRYPOINT:設置容器啓動時運行的命令,一定會執行,不會被忽略

 

1.編寫Dockerfile

2.構建image

3.分別運行兩個image看效果

4.修改Dockerfile如下

5.重新構建和運行

CMD:設置容器啓動後默認執行的參數和命令,若docker指定了其他命令,CMD可以被忽略,CMD若指定多個,只運行最後一個

1.編寫file

2.構建和運行

 

 CMD和ENTRYPOINT對比

 

1.再構建一個ENTRYPOINT

2.構建

3.運行CMD的image

4.運行ENTRYPOINT的image

CMD命令可能被覆蓋,ENTRYPOINT命令一定會執行

分享docker image

分享的image一定要以自己docker用戶名開頭,例如:zhangsan/centos

1.登錄

 2.上傳自己得image

3.下載自己的image

 分享自己得Dockerfile

 

分享image不太安全,一般分享Dockerfile

1.點擊

2.與gitHub關聯,鏈接一個賬戶

3.link到github

4.點擊

 

搭建私有的docker registry

 

1.docker hub裏搜

2.開啓另一臺虛擬機,執行安裝運行registry

3.在之前機器安裝telnet,測試連通信

4.構建image,IP是倉庫機器的IP

5.直接push會報錯

6.編寫json文件,目錄和文件名如下,IP是倉庫機器的IP

7.修改文件,添加一行即可

8.重啓docker

9.查看docker私有倉庫的內容,此時沒有東西,路徑如下

10.上傳自己的image到docker私有倉庫

11.再次查看私有倉庫

12.刪掉本地的image

13.從私有倉庫下東西

Dockerfile案例

用py寫一個web應用

1.編寫py文件

2.安裝wget

3.安裝pip,直接複製運行.txt中的命令

4.安裝

5.用pip安裝flask

6.搭建web服務成功

7.編寫Dockerfile

8.構建image

9.運行

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