Dockerfile運(yùn)行Tomcat實(shí)踐
1 dockerfile
dockerfile 是一個(gè)文本格式的配置文件, 用戶可以使用 Dockerfile 來(lái)快速創(chuàng)建自定義的鏡像,
另外,使用Dockerfile去構(gòu)建鏡像好比使用pom去構(gòu)建maven項(xiàng)目一樣,有異曲同工之妙
2 dockerfile基本結(jié)構(gòu)
Dockerfile 由一行行命令語(yǔ)句組成, 并且支持以#開頭的注釋行,一般而言, Dockerfile 主體內(nèi)容分為四部分:
基礎(chǔ)鏡像信息、 維護(hù)者信息、 鏡像操作指令和容器啟動(dòng)時(shí)執(zhí)行指令。
| 部分 | 命令 |
|---|---|
| 基礎(chǔ)鏡像信息 | FROM |
| 維護(hù)者信息 | MAINTAINER |
| 鏡像操作指令 | RUN、(COPY/ADD)、EXPOSE、WORKDIR、ONBUILD、USER、VOLUME 等 |
| 容器啟動(dòng)時(shí)執(zhí)行指令 | CMD、ENTRYPOINT |
注1:各命令的詳細(xì)使用見:資料01和02
3 docker使用Dockerfile創(chuàng)建jdk容器
啟動(dòng)虛擬機(jī),進(jìn)入CentOS
3.1 創(chuàng)建文件夾上傳jdk的安裝包,和在同級(jí)目錄下編寫Dockerfile文件
$ mkdir –p /zking/java # 注意d是大寫 $ touch Dockerfile
將jdk-8u221-linux-x64.tar.gz上傳到Linux或者使用cp命令復(fù)制一個(gè)本地已經(jīng)有的jdk-8u221-linux-x64.tar.gz文件到指定目錄中
$ cp /lky/tools/jdk-8u221-linux-x64.tar.gz /zking/java
3.2 編寫 Dockerfile 文件
3.2.1 vi Dockerfile進(jìn)入編輯模式
- :wq #退出并保存文件
- :q! #退出不保存文件
- 按i鍵進(jìn)入insert編輯模式
3.2.2 指定基礎(chǔ)鏡像,并且必須是第一條指令
FROM centos:latest
3.2.3 指明該鏡像的作者和其電子郵件
MAINTAINER zs "zs@qq.com"
3.2.4 在構(gòu)建鏡像時(shí),指定鏡像的工作目錄,之后的命令都是基于此工作目錄,如果不存在,則會(huì)創(chuàng)建目錄
3.2.5 一個(gè)復(fù)制命令,把jdk安裝文件復(fù)制到鏡像中,語(yǔ)法:ADD <src>... <dest>,注意:jdk*.tar.gz使用的是相對(duì)路徑
ADD jdk-8u151-linux-x64.tar.gz /zking/java/
注:如果在宿主機(jī)的當(dāng)前路徑下,文件直接使用相對(duì)路徑即可;
3.2.6 配置環(huán)境變量
ENV JAVA_HOME=/zking/java/jdk1.8.0_151 ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV PATH=$JAVA_HOME/bin:$PATH

#容器啟動(dòng)時(shí)需要執(zhí)行的命令 #CMD ["java","-version"]

3.3 執(zhí)行Dockerfile文件,初次依賴鏡像的時(shí)候會(huì)下載相應(yīng)鏡像
docker build -t jdk8:v1.0 .

注1:-t jdk8:v1.0 給新構(gòu)建的鏡像取名為 jdk8, 并設(shè)定版本為v1.0
注2:注意最后有個(gè)點(diǎn),代表使用當(dāng)前路徑的 Dockerfile 進(jìn)行構(gòu)建
3.4 查看鏡像
docker images

3.5 創(chuàng)建并啟動(dòng)容器
docker run -it jdk8:v1.0 /bin/bash

3.6 檢查是否有問(wèn)題
javac

4 dockerfile實(shí)踐經(jīng)驗(yàn)
1. 精簡(jiǎn)鏡像用途:盡量讓每個(gè)鏡像的用途都比較集中單一,避免構(gòu)造大而復(fù)雜、多功能的鏡像
2. 選用合適的基礎(chǔ)鏡像:容器的核心是應(yīng)用,選擇過(guò)大的父鏡像(如CentOS系統(tǒng)鏡像)會(huì)造成最終生成應(yīng)用鏡像的臃腫,
推薦選用瘦身過(guò)的應(yīng)用鏡像或者較為小巧的系統(tǒng)鏡像(alpine)
附錄一:SecureCRT上傳文件到Linux服務(wù)器上
1. 輸入rz命令,看是否已經(jīng)安裝了lrzsz,如果沒(méi)有安裝則執(zhí)行 apt install lrzsz -y 命令進(jìn)行安裝。
2. 安裝成功后,輸入rpm命令確認(rèn)是否正確安裝
3. 使用 rz -y命令進(jìn)行文件上傳,此時(shí)會(huì)彈出上傳的窗口
還可以通過(guò)sz下載文件
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- docker通過(guò)Dockerfile修改鏡像中tomcat的端口
- Docker容器上用DockerFile部署多個(gè)tomcat服務(wù)的步驟
- 如何基于Dockerfile構(gòu)建tomcat鏡像
- 基于alpine用dockerfile創(chuàng)建的tomcat鏡像的實(shí)現(xiàn)
- Dockerfile制作官方Tomcat鏡像及鏡像使用詳解
- Docker學(xué)習(xí)之基于Dockerfile搭建JAVA Tomcat運(yùn)行環(huán)境的方法
- Docker-利用dockerfile來(lái)搭建tomcat服務(wù)的方法
- docker在已有的tomcat鏡像上打新的鏡像的Dockerfile編寫說(shuō)明介紹
相關(guān)文章
centos搭建部署docker環(huán)境的詳細(xì)步驟
Docker 將程序與程序的運(yùn)行環(huán)境打包在一起,從而避免了復(fù)雜的環(huán)境配置,下面這篇文章主要給大家介紹了關(guān)于centos搭建部署docker環(huán)境的詳細(xì)步驟,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07
docker-compose部署gitlab的詳細(xì)過(guò)程
文章介紹了GitLab作為開源版本控制系統(tǒng)的核心功能(代碼托管、CI/CD、項(xiàng)目管理等)及適用場(chǎng)景,詳細(xì)說(shuō)明了使用docker-compose部署GitLab 18.2.4-ce的步驟,并指導(dǎo)配置Nginx反向代理實(shí)現(xiàn)便捷訪問(wèn),感興趣的朋友跟隨小編一起看看吧2025-08-08
docker運(yùn)行可登錄的gerrit容器及遇到問(wèn)題解決方案
這篇文章給大家介紹docker運(yùn)行可登錄的gerrit容器及遇到問(wèn)題解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2026-01-01
Docker安裝Maven私服Nexus3的實(shí)現(xiàn)步驟
本文主要介紹了Docker安裝Maven私服Nexus3的實(shí)現(xiàn)步驟,可以幫助開發(fā)者搭建高效的依賴管理和分發(fā)環(huán)境,具有一定的參考價(jià)值,感興趣的可以了解一下2025-12-12
Docker安裝Redis并介紹可視化客戶端進(jìn)行操作
這篇文章主要介紹了Docker安裝Redis并介紹可視化客戶端進(jìn)行操作方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
ubuntu如何在docker容器中安裝strongswan
這篇文章主要介紹了ubuntu如何在docker容器中安裝strongswan,起動(dòng)一個(gè)ubuntu容器,我是用的docker compose啟動(dòng)的,compose的配置文件為ipsec-strongswan.yml,感興趣的朋友跟隨小編一起看看吧2024-04-04
docker compose部署cassandra集群的操作代碼
這篇文章主要介紹了docker compose部署cassandra集群的操作代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-03-03
Docker鏡像倉(cāng)庫(kù)的垃圾回收機(jī)制深度清理后端存儲(chǔ)空間的實(shí)現(xiàn)
本文主要介紹了Docker鏡像倉(cāng)庫(kù)的垃圾回收機(jī)制深度清理后端存儲(chǔ)空間的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2026-04-04

