摘自B站UP主狂神的學習筆記,歡迎大家去看原視頻學習:BV1og4y1q7M4
DockerFIle
dockerfile用來構建docker鏡像的文件!命令參數腳本
構建步驟:
- 編寫一個dockerfile文件
- docker build 構建一個鏡像
- docker run運行鏡像
- docker push 發佈鏡像
很多官方的鏡像都是基礎包,很多功能都沒有。通常會自己搭建鏡像
DockerFile的腳本構建
基礎知識:
1、每個保留字都必須是大寫字母
1、每個保留字都是大寫
2、執行從上到下順序執行
3、# 表示註釋
4、每一個指令都會創建提交一個新的鏡像層,並提交
dockerfile是面向開發的,以後要發佈項目,做鏡像,就需要編寫dockerfile文件。
Docker鏡像逐漸成爲企業交付的標準
名稱 | 作用 |
---|---|
DockerFile | 構建文件,定義了一切的步驟 |
DockerImages | 通過DockerFile構建生成的鏡像,最終發佈和運行的產品 |
Docker容器 | 容器就是鏡像運行起來提供服務器 |
DockerFile指令
FROM # 基礎鏡像,一切從這裏開始構建
MAINTAINER # 鏡像是誰寫的 姓名+郵箱
RUN # 鏡像構建的時候需要運行的命令
ADD # 步驟:tomcat鏡像,這個tomcat的壓縮包,就是要添加的內容
WORKDIR # 鏡像的工作目錄
VOLUME # 容器的掛載目錄
EXPOSE # 指定對外的端口配置
CMD # 指定這個容器啓動的時候要運行的命令。只有最後一個會生效,可被替代
ENTRYPOINT # 指定這個容器啓動的時候要運行的命令。可以追加命令
ONBUILD # 當構建一個被繼承 DockerFile這個時候就會運行ONBUILD指令。觸發指令
COPY # 類似ADD,將我們文件拷貝到鏡像中
ENV # 構建的時候設置環境變量
配置實戰
先從FROM scratch開始
編寫一個自己的centos
root@dennis-1:/home/dockerfile# vim mydockerfile-centos
root@dennis-1:/home/dockerfile# cat mydockerfile-centos
FROM centosr
MAINTAINER dennis<[email protected]>
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "------end-------"
CMD /bin/bash
# 通過這個文件構建鏡像
docker build -f mydockerfile-centos -t mycentos:0.1 .
# build --構建鏡像
# -f 指定構建的文件名
# -t 指定生成的鏡像名
# 最後有一個點 .
我們還可以通過docker history [容器ID]來查看一個容器的構建歷史:
CMD 和 ENTRYPOINT的區別
- 測試cmd
如果想要追加一個命令 -l --> ls -al
cmd的情況下會報錯。
- 測試ENTRYPOINT
這一次在構建完畢後,在末尾執行了一個-l,被加到了前面,形成了“ls -la”
編寫一個Tomcat
-
準備鏡像文件,tomcat和jdk的tar.gz壓縮包
-
編寫dockerfile文件名,官方命名
Dockerfile
,build會自動尋找這個文件,就不需要-f指定
FROM centos
MAINTAINER dennis<[email protected]>
# 添加的tar會自動解壓到指定的目錄下
ADD jdk-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-9.0.35.tar.gz /usr/local/
RUN yum -y install vim
ENV MYPATH /usr/local
WORKDIR $MYPATH
ENV JAVA_HOME /usr/local/jdk1.8.0_131
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.35
ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.35
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
EXPOSE 8080
CMD /usr/local/apache-tomcat-9.0.35/bin/startup.sh && tail -F /url/local/apache-tomcat-9.0.35/catalina.out
-
構建自己的鏡像
-
啓動鏡像
-
訪問測試
-
發佈項目
發佈鏡像
-
登錄鏡像網址
docker login [opetions] [server] # -p --password # -u --username
-
登錄完成過後,發佈鏡像
docker push dennis/diytomcat:1.0
直接上傳鏡像一般會被拒絕,需要加上作者信息,版本信息 – 通過docker tag添加
# 自己發佈的鏡像,儘量要帶版本號
docker tag 187a2cd663cf dennis/diytomcat:1.0
發佈到阿里雲鏡像服務上
– 沒有買,暫時空着
小結
Docker的執行流程: