Docker部署java項(xiàng)目,關(guān)于Dockerfile文件構(gòu)建鏡像方式
一、準(zhǔn)備Docker環(huán)境
1、安裝依賴(lài)
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2、添加軟件源頭(阿里源)- 加速
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、更新yum
sudo yum makecache fast
4、安裝docker
sudo yum install docker-ce
5、啟動(dòng)服務(wù) 重啟restart 停止stop
systemctl start docker
6、查看版本
docker version
啟動(dòng)Docker查看版本

二、準(zhǔn)備build的java鏡像
1、拉取基礎(chǔ)鏡像 openjdk:8
jdk8
docker pull openjdk:8
2、創(chuàng)建Dockerfile文件
注意文件名稱(chēng)要一致Dockerfile,不然構(gòu)建鏡像會(huì)出問(wèn)題

以下文件可以在Run容器時(shí)候包參數(shù)傳進(jìn)去,比如JVM相關(guān)參數(shù)
# 使用 OpenJDK 8 作為基礎(chǔ)鏡像 FROM openjdk:8 # 設(shè)置工作目錄 WORKDIR /app # 將宿主機(jī)上的 hs-basic.jar 復(fù)制到容器內(nèi)的 /app 目錄 COPY hs-basic.jar /app/hs-basic.jar # 暴露應(yīng)用程序端口 EXPOSE 80 # 在容器啟動(dòng)時(shí)運(yùn)行應(yīng)用程序 ENV JAVA_OPTS="" # 使用 shell 形式的 CMD 命令來(lái)執(zhí)行 Java 應(yīng)用程序 CMD java $JAVA_OPTS -jar hs-basic.jar
3、構(gòu)建java鏡像
注意:對(duì)應(yīng)的jar包路徑要與上面文件路徑一直,最好直接放在和Dockerfile一個(gè)目錄
docker build -t hs-basic:1.0.0 .
構(gòu)建完成可以查看對(duì)應(yīng)的鏡像
docker images

三、啟動(dòng)容器
1、運(yùn)行容器
指定端口、映射日志目錄(注意代碼日志目錄)
- 指定jvm參數(shù)
docker run -e "JAVA_OPTS=-Xms1024m -Xmx1024m -XX:+UseG1GC" \
-p 80:80 \
-v /mnt/docker/logs:/mnt/hs/log \
-d \
--name hs-server1.0.0 \
hs-basic:1.0.02、查看容器
啟動(dòng)完成可以通過(guò)命令查看容器信息
# 查看啟動(dòng)成功的容器 docker ps #查看所有容器,包含啟動(dòng)失敗的 docker ps -a
四、容器內(nèi)部dump jvm日志
dump jvm日志
1、進(jìn)入容器內(nèi)部
docker exec -it hs-server /bin/bash
查看java進(jìn)程,然后dump日志
ps -ef | grep java jmap -dump:live,format=b,file=m.hprof PID

docker環(huán)境,直接把該文件移動(dòng)到映射文件目錄,宿主機(jī)目錄就可以直接看見(jiàn)進(jìn)行下載了
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- dockerfile構(gòu)建任意java鏡像的實(shí)現(xiàn)示例
- 使用Dockerfile構(gòu)建自定義鏡像的操作步驟
- docker利用dockerfile構(gòu)建鏡像
- Dockerfile多鏡像構(gòu)建方式
- docker使用Dockerfile構(gòu)建鏡像的實(shí)現(xiàn)示例
- Dockerfile構(gòu)建Redis鏡像的方法實(shí)現(xiàn)(yum方式)
- 編寫(xiě)Dockerfile和構(gòu)建自定義鏡像的步驟與技巧
- Dockerfile及新型容器鏡像構(gòu)建技術(shù)詳解
- Dockerfile 一鍵構(gòu)建 Hadoop 鏡像的實(shí)現(xiàn)
相關(guān)文章
docker?搭建?ElasticSearch過(guò)程解析
這篇文章主要介紹了docker搭建ElasticSearch的過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,,需要的朋友可以參考下2023-08-08
使用Docker-compose部署mysql的簡(jiǎn)單步驟
Docker-compose是Docker官方推出的一個(gè)工具,用于定義和運(yùn)行多個(gè) Docker 容器的應(yīng)用程序,下面這篇文章主要給大家介紹了關(guān)于使用Docker-compose部署mysql的簡(jiǎn)單步驟,需要的朋友可以參考下2023-04-04
深入理解Docker Load和Docker Import的區(qū)別詳解
Docker是一個(gè)流行的容器化平臺(tái),提供了豐富的命令和功能,其中docker load和docker import是兩個(gè)常用的命令,用于加載Docker鏡像,這篇文章主要給大家介紹了關(guān)于Docker Load和Docker Import區(qū)別的相關(guān)資料,需要的朋友可以參考下2024-03-03
docker desktop安裝redis的實(shí)現(xiàn)步驟
本文主要介紹了docker desktop安裝redis的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04
Docker+Nginx+KeepaLived實(shí)現(xiàn)Nginx一主一從高可用方式
在CentOS7主從服務(wù)器上部署Nginx容器并配置Keepalived實(shí)現(xiàn)高可用,通過(guò)虛擬IP自動(dòng)切換,主從均需安裝Keepalived,配置健康檢查腳本監(jiān)控Nginx狀態(tài),故障時(shí)自動(dòng)重啟或切換虛擬IP,需關(guān)閉防火墻和SELinux,并確保腳本有執(zhí)行權(quán)限2025-07-07
docker搭建xxl-job的實(shí)現(xiàn)步驟
XXL-JOB是一個(gè)輕量級(jí)分布式任務(wù)調(diào)度平臺(tái),通過(guò)xxljob,我們可以方便地實(shí)現(xiàn)任務(wù)調(diào)度和任務(wù)執(zhí)行監(jiān)控,本文介紹了docker搭建xxl-job的實(shí)現(xiàn)步驟,感興趣的可以了解一下2023-12-12

