使用Docker 运行jar 文件
- 使用Java镜像直接运行
- 切换root用户,在/etc/docker 目录下创建daemon.json文件,添加镜像源
{
"registry-mirrors": ["https://almtd3fa.mirror.aliyuncs.com"]
}
systemctl daemon-reload
systemctl docker restart
拉取Java镜像
docker pull java-jdk:8
- 运行Jar文件
- 将jar 包放入个人指定的目录,例如:/project/demo
- 执行命令生成容器启动jar
docker run -d -p 8080:8083 -v /project/demo:project/demo --name demo java:8-jdk java -jar /project/demo/demo.jar
- -d :后台运行
- -p :端口映射
- -v :/project/demo:/project/demo:将宿主机的路径映射到容器中
- -name :定义生成容器的名称
利用Docker创建镜像运行jar 文件
- 上传jar包到指定的目录
- 在该目录下创建Dockerfile文件
vi Dockerfile
FROM java:8
MAINTAINER dinny-xu
ADD docker-demo.jar demo.jar
COPY config config
EXPOSE 9000
ENTRYPOINT ["java", "-jar", "demo.jar"]
- FROM:基础镜像,基于jdk8镜像开始
- MAINTAINER:作者
- ADD:将jar文件添加(复制)到镜像内,docker-demo.jar源文件,demo.jar复制得到的文件
- COPY:将应用的配置文件拷贝到镜像中
- EXPOSE:声明端口
- ENTRYPOINT:docker启动时,运行的命令,这里容器启动时直接运行jar服务
创建好Dockerfile文件之后,执行命令 构建镜像
docker build -t demo:test .
- demo:镜像名称
- tets:镜像的tag,如果不写默认latest
- . :这个 . 一定不能忘记,最后的. 代表本次执行的上下文路径,ADD docker-demo.jar demo.jar ,中间的docker-demo.jar在哪里,就是根据这个 . 确定的,在上述Dockerfile,表示将当前文件夹下的docker-demo.jar和config 文件添加到容器中
- 镜像构建成功后可查看镜像
docker images
运行镜像
docker run -d --name demo-test -p 9000:9000 -v /project/demo:/project/demo demo:test
docker ps
docker logs -f --tail 1000 <容器ID>