为了以后吹牛逼,
采用jdk8+centos镜像 =>jdk镜像
把jar包扔进持久化文件里
1 下载centos
下载指定centos镜像
docker pull centos:centos7
最新的版本docker pull centos
报错 unauthorized: authentication required
是阿里云镜像,需要登录凭证
两百兆的系统 不可思议
2 下载jdk
就是下个linux版jdk8 传到服务器/home/docker/jdk
# 路径
cd /home/docker/jdk
# 解压
tar -zxvf jdk-8u291-linux-x64.tar.gz
编写Dockerfile 文件
命令vi Dockerfile
创建Dockerfile
文件(该文件必须和jdk在同一目录)
路径一定要对好, 以及解压后的文件夹jdk1.8.0_291
看自己的名字改正
#依赖的基础为centos 系统
FROM centos
# 作者
MAINTAINER root
# 创建并检查文件夹-没有也会自动创建
RUN mkdir /usr/local/jdk
WORKDIR /usr/local/jdk
# 上传jar包 后面的路径为jar包位于容器的路径, 容器内压缩包会自动解压
ADD jdk-8u291-linux-x64.tar.gz /usr/local/jdk
# 也可以上传自己的包 包和Dockerfile在同一文件夹
# ADD xxx.jar /home
# 环境变量 根目录为jar包所在目录 即/usr/local/jdk
ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_291
ENV JRE_HOME /usr/local/jdk/jdk1.8.0_291/jre
ENV CLASSPATH .:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
jdk17 配置文件<有变动>
#依赖的基础为centos 系统
FROM centos
# 作者
MAINTAINER root
# 创建并检查文件夹-没有也会自动创建
RUN mkdir /usr/local/jdk
WORKDIR /usr/local/jdk
# 上传jar包 后面的路径为jar包位于容器的路径, 容器内压缩包会自动解压
ADD jdk-17_linux-x64_bin.tar.gz /usr/local/jdk
# 也可以上传自己的包 包和Dockerfile在同一文件夹
# ADD xxx.jar /home
# 环境变量 根目录为jar包所在目录 即/usr/local/jdk
ENV JAVA_HOME /usr/local/jdk/jdk-17.0.2
ENV CLASSPATH .:$JAVA_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
构建镜像
在 Dockerfile文件目录执行
# jdk8 为镜像名字
docker build -t jdk8 . -f Dockerfile
香
构建容器
# 测试
docker run -d --restart=always --name test-jdk -p 8081:8080 -it jdk8 /bin/bash
# 进入
docker exec -it test-jdk bash
# 测试
java -version
成功
运行若依
docker run -d --restart=always -v /home/docker/ruoyi/jar:/jar -p 8081:8080 --name ruoyi jdk8 java -jar -Duser.timezone=GMT+08 /jar/ruoyi-admin.jar
-d #后台运行
--restart=always #开机启动
-v /home/docker/ruoyi/jar:/jar #宿主机 /home/docker/ruoyi/jar 下的jar映射到容器/jar下
-p 8081:8080 #将容器的8080映射到宿主机的8081,开放宿主机8081端口
--name ruoyi #容器名字ruoyi
jdk8 #上面的镜像名
java -jar -Duser.timezone=GMT+08 /jar/ruoyi-admin.jar #启动jar包
以后替换宿主机的jar重启容器docker restart ruoyi
即可
查看日志的几个方式:
(1)docker logs --tail=1000 容器名称
(查看容器前多少行的日志)(推荐)
(2)docker 容器启动后,可以进入以下位置查看日志(/var/lib/docker/containers/容器ID/容器ID-json.log)(进入容器内部查看日志)
(3)#查看compose所有容器的运行日志
docker-compose -f docker-compose-app.yml logs -f
(4)#查看compose下某个容器的运行日志
docker-compose -f docker-compose-app. yml logs -f<服务名>
(5)# 也可以把compose的容器日志输出到日志文件里去,然后用tail -f随时查看
docker-compose -f docker-compose-app. yml logs -f >> myDockerCompose.log &