Dockerfile

1.使用Dockerfile生成帶有jdk的容器

Dockerfile是用來(lái)構(gòu)建docker鏡像的,docker鏡像可以理解為一個(gè)只讀的模板,使用docker鏡像可以生成docker容器。

1.1 dockerfile基本了解

#centos with jdk 8

#Author zhanglei

#build a new image with centos

FROM centos

MAINTAINER zhanglei

#make a new directory to store the jdk files

RUN mkdir /usr/local/java

#copy the jdk to image /usr/local/java

ADD jdk1.8.0_201 /usr/local/java

#set enviroment variables

ENV JAVA_HOME /usr/local/java/

ENV JRE_HOME ${JAVA_HOME}/jre

ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib

ENV PATH ${JAVA_HOME}/bin:$PATH

# 代表注釋? 會(huì)在使用Dockerfile構(gòu)建鏡像時(shí)顯示出來(lái)

#FROM? 表示使用centos(鏡像名)[版本號(hào)]作為基礎(chǔ)鏡像,如果本地不存在,會(huì)從dockerhub中下載

#MAINTAINER? 指定維護(hù)者的信息

#RUN? 構(gòu)建Dockerfile時(shí)就會(huì)執(zhí)行的命令,相當(dāng)于執(zhí)行 "/bin/bash -c xxx"

#ADD 將宿主機(jī)的文件拷貝到容器中

#COPY 和ADD的作用相同,但是會(huì)自動(dòng)解壓拷貝的文件

#ENV 設(shè)置環(huán)境變量

1.2使用Dockerfile構(gòu)建鏡像

docker build -t [-f,-m]? centos-jdk:0.1? .


-t 指定鏡像的名稱和版本

-f 指定使用的Dockerfile路徑

-m 指定容器的最大內(nèi)存

centos-jdk:0.1 和-t相關(guān),centos-jdk是名稱,:0.1是版本

.? 最后的點(diǎn)代表執(zhí)行當(dāng)前目錄下的Dockerfile

1.3 查看鏡像

docker images


1.4 檢查容器jdk配置是否成功

docker run -it? ?centos-jdk:0.1 /bin/bash

javac

-i 以交互模式運(yùn)行容器,通常與 -t 同時(shí)使用;

-t?為容器重新分配一個(gè)偽輸入終端,通常與 -i 同時(shí)使用

/bin/bash

2.使用Dockerfile構(gòu)建web程序

2.1 使用Dockerfile構(gòu)建一個(gè)簡(jiǎn)單的springboot程序

#基礎(chǔ)鏡像信息

FROM centos-jdk:0.1

#作者

MAINTAINER zhanglei123

VOLUME /tmp

#復(fù)制jar包到容器中

ADD app.jar? /usr/local/app.jar

#程序運(yùn)行的端口

EXPOSE 8090

#執(zhí)行jar文件

CMD? java -jar /usr/local/app.jar



FROM :表示使用centos-jdk:0.1為基礎(chǔ)鏡像

MAINTAINER :指定維護(hù)者的信息

VOLUME :VOLUME 指向了一個(gè)/tmp的目錄,由于 Spring Boot 使用內(nèi)置的Tomcat容器,Tomcat 默認(rèn)使用/tmp作為工作目錄。這個(gè)命令的效果是:在宿主機(jī)的/var/lib/docker目錄下創(chuàng)建一個(gè)臨時(shí)文件并把它鏈接到容器中的/tmp目錄

ADD :拷貝文件并且重命名(前面是上傳jar包的名字,后面是重命名)

CMD :?jiǎn)?dòng)容器時(shí)執(zhí)行的命令

2.2 生成鏡像

docker build -t springboot-web .

2.3構(gòu)建容器

docker run --name web-test? -p 8090:8090 -d springboot-web

--name 容器名

-p 宿主機(jī)和容器之間的端口映射 主機(jī)端口:容器端口

-d 程序在后臺(tái)運(yùn)行?

springboot-web 啟動(dòng)容器的鏡像

2.4 查看程序運(yùn)行日志

docker logs -tf web-test

-tf? 相當(dāng)于 tail -f命令

-t 顯示時(shí)間戳

-f 實(shí)時(shí)顯示日志

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容