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.0
2、查看容器
啟動(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è)參考,也希望大家多多支持腳本之家。
相關(guān)文章
docker批量啟動(dòng)關(guān)閉所有容器的操作
這篇文章主要介紹了docker批量啟動(dòng)關(guān)閉所有容器的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03Docker內(nèi)如何訪(fǎng)問(wèn)本機(jī)(宿主機(jī))的具體方法
這篇文章主要介紹了Docker內(nèi)如何訪(fǎng)問(wèn)本機(jī)(宿主機(jī))的具體方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10安裝harbor作為docker鏡像倉(cāng)庫(kù)的問(wèn)題
這篇文章主要介紹了安裝harbor作為docker鏡像倉(cāng)庫(kù),主要包括docker和docker-compose離線(xiàn)部署,安裝harbor作為本地的倉(cāng)庫(kù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06Docker 打包 K8s鏡像的應(yīng)用實(shí)例
文章介紹了如何使用Docker打包和部署Kubernetes鏡像,包括準(zhǔn)備工作、創(chuàng)建Dockerfile、構(gòu)建鏡像、測(cè)試運(yùn)行、推送鏡像、Kubernetes部署文件示例、部署到Kubernetes等步驟,并提供了注意事項(xiàng)和最佳實(shí)踐,感興趣的朋友一起看看吧2025-03-03Docker 部署Mysql 服務(wù)和Redis 服務(wù)的方法
這篇文章主要介紹了Docker 部署Mysql 服務(wù)和Redis 服務(wù)的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11