一、准备Docker环境
1、安装依赖
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、启动服务 重启restart 停止stop
systemctl start docker
6、查看版本
docker version
启动Docker查看版本
二、准备build的java镜像
1、拉取基础镜像 openjdk:8
jdk8
docker pull openjdk:8
2、创建Dockerfile文件
注意文件名称要一致Dockerfile,不然构建镜像会出问题
以下文件可以在Run容器时候包参数传进去,比如JVM相关参数
# 使用 OpenJDK 8 作为基础镜像
FROM openjdk:8
# 设置工作目录
WORKDIR /app
# 将宿主机上的 hs-basic.jar 复制到容器内的 /app 目录
COPY hs-basic.jar /app/hs-basic.jar
# 暴露应用程序端口
EXPOSE 80
# 在容器启动时运行应用程序
ENV JAVA_OPTS=""
# 使用 shell 形式的 CMD 命令来执行 Java 应用程序
CMD java $JAVA_OPTS -jar hs-basic.jar
3、构建java镜像
注意:对应的jar包路径要与上面文件路径一直,最好直接放在和Dockerfile一个目录
docker build -t hs-basic:1.0.0 .
构建完成可以查看对应的镜像
docker images
三、启动容器
1、运行容器
指定端口、映射日志目录(注意代码日志目录)
指定jvm参数
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、查看容器
启动完成可以通过命令查看容器信息
# 查看启动成功的容器
docker ps
#查看所有容器,包含启动失败的
docker ps -a
四、容器内部dump jvm日志
dump jvm日志
1、进入容器内部
docker exec -it hs-server /bin/bash
查看java进程,然后dump日志
ps -ef | grep java
jmap -dump:live,format=b,file=m.hprof PID
docker环境,直接把该文件移动到映射文件目录,宿主机目录就可以直接看见进行下载了