Docker-利用dockerfile來(lái)搭建tomcat服務(wù)的方法
在前面的例子中,我們從下載鏡像,啟動(dòng)容器,在容器中輸入命令來(lái)運(yùn)行程序,這些命令都是手工一條條往里輸入的,無(wú)法重復(fù)利用,而且效率很低。所以就需要一 種文件或腳本,我們把想執(zhí)行的操作以命令的方式寫(xiě)入其中,然后讓docker讀取并分析、執(zhí)行,那么重復(fù)構(gòu)建、更新將變得很方便,所以Dockerfile就此誕生了。
常用參數(shù):
FROM命令。用法,F(xiàn)ROM <image>:<tag>。FROM命令告訴docker我們構(gòu)建的鏡像是以哪個(gè)(發(fā)行版)鏡像為基礎(chǔ)的
RUN命令。用法RUN <command>。RUN 后面接要執(zhí)行的命令,比如,我們想在鏡像中安裝vim,只需在Dockfile中寫(xiě)入RUN yum install -y vim
ENV命令。用法,ENV <key> <value>。ENV命令主要用于設(shè)置容器運(yùn)行時(shí)的環(huán)境變量
ADD命令。用法,ADD <src> <dest>。ADD主要用于將宿主機(jī)中的文件添加到鏡像中
首先建一個(gè)目錄構(gòu)建我們的環(huán)境。
mkdir test/web
上傳tomcat和jdk到該目錄下。
[root@wls12c web]$ ls apache-tomcat-7.0.70.tar.gz jdk-7u80-linux-x64.tar.gz
編輯Dockerfile
vim Dockerfile #pull down centos image FROM centos MAINTAINER test@test.com #copy jdk and tomcat into image ADD ./apache-tomcat-7.0.70.tar.gz /root ADD ./jdk-7u80-linux-x64.tar.gz /root #set environment variable ENV JAVA_HOME /root/jdk1.7.0_80 ENV PATH $JAVA_HOME/bin:$PATH #define entry point which will be run first when the container starts up ENTRYPOINT /root/apache-tomcat-7.0.70/bin/startup.sh && tail -F /root/apache-tomcat-7.0.70/logs/catalina.out
構(gòu)建鏡像
[root@wls12c web]$ docker build -t keven/centos:tomcat-centos --rm=true . Sending build context to Docker daemon 470.4 MB Sending build context to Docker daemon Step 0 : FROM centos ---> d83a55af4e75 Step 1 : MAINTAINER test@test.com ---> Running in 955747d64da5 ---> 1619dc8f6d58 ................ 70/logs/catalina.out ---> Running in fe48acf12d70 ---> 52076383f11b Removing intermediate container fe48acf12d70 Successfully built 52076383f11b
-t選擇指定生成鏡像的用戶名,倉(cāng)庫(kù)名和tag
--rm=true指定在生成鏡像過(guò)程中刪除中間產(chǎn)生的臨時(shí)容器。
查看新產(chǎn)生的鏡像
[root@wls12c web]$ docker images keven/centos REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE keven/centos tomcat-centos 52076383f11b 19 minutes ago 516.6 MB
運(yùn)行鏡像
[root@wls12c web]$ docker run -d -p 8090:8080 5207 8260fa22aa32126f613a6b64f121e78545ceae01da58c61396968bfafeda3706
-p指定主機(jī)80端口與容器8080端口進(jìn)行綁定
-d 指定容器運(yùn)行后與當(dāng)前tty分離,后臺(tái)運(yùn)行
5207是鏡像的ID前4位。
通過(guò) http://宿主機(jī)IP:8090,即可看見(jiàn)我們熟悉的tomcat首頁(yè)了。
另外還有一種自動(dòng)映射主機(jī)端口的啟動(dòng)方法
[root@wls12c web]$ docker run -d -p 8080 --name myweb 520 de39869a8c560e5e0cf48fc6022c05ed9f9a145bdafb897767fa468dc24ebfff [root@wls12c web]$ docker port de3 8080/tcp -> 0.0.0.0:32768 [root@wls12c web]$
這樣就要通過(guò)http://宿主機(jī)IP:32768訪問(wèn)了。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
如何使用Docker定時(shí)備份數(shù)據(jù)
這篇文章主要介紹了如何使用Docker定時(shí)備份數(shù)據(jù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-04-04使用Docker Compose搭建 Confluence的教程
本文將介紹如何使用 Docker Compose 快速搭建 Confluence 、以及如何和 Traefik 一同使用,如果你看過(guò)之前的內(nèi)容,跟隨本文應(yīng)該能在十分鐘內(nèi)解決戰(zhàn)斗,感興趣的朋友快來(lái)看看吧2021-06-06Docker端口映射實(shí)現(xiàn)網(wǎng)絡(luò)訪問(wèn)的方法
本篇文章主要介紹了Docker端口映射實(shí)現(xiàn)網(wǎng)絡(luò)訪問(wèn)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07Docker 搭建私有倉(cāng)庫(kù)(registry、harbor)
這篇文章主要介紹了Docker 搭建私有倉(cāng)庫(kù)(registry、harbor),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06