engine api url 是已经安装好的docker连接
1.名字相同不用停容器
需要在项目的根目录下面创建一个创建一个docker文件
dockerFile配置
- 上传jar到服务器的指定目录
- 在该目录下创建Dockerfile 文件
vi Dockerfile - 然后将下面的内容复制到Dockerfile文件中
FROM java:8
MAINTAINER bingo
ADD demo-0.0.1-SNAPSHOT.jar demo.jar
EXPOSE 8080
ENTRYPOINT [“java”,"-jar",“demo.jar”]
from java:8 拉取一个jdk为1.8的docker image
maintainer 作者是bing
demo-0.0.1-SNAPSHOT.jar 就是你上传的jar包,替换为jar包的名称
demo.jar 是你将该jar包重新命名为什么名称,在容器中运行
expose 该容器暴露的端口是多少,就是jar在容器中以多少端口运行
entrypoint 容器启动之后执行的命令,java -jar demo.jar 即启动jar - 创建好Dockerfile文件之后,执行命令 构建镜像:
docker build -t my/demo .
注意最后的 . 表示 Dockerfile 文件在当前目录下
my/demo 构建之后镜像名称
现有项目例子:
1.安装 majiajue/jdk1.8:latest 镜像(下载很慢,本地有一个)
2. Dockerfile 文件内容
FROM majiajue/jdk1.8
VOLUME /home/docker/tmp
ARG JAR_FILE
ENV LANG C.UTF-8
ADD build/libs/demo5-1.0.jar demo5.jar
ENTRYPOINT ["java", "-jar","/demo5.jar"]
程序路径:
3.配置
4.前面的步骤如果没啥问题,但是启动还是报错:
Failed to deploy ‘demo5 Dockerfile: Dockerfile’: java.lang.NullPointerException
尝试删除镜像,以及容器,从新来一次。
切记:docker 前一定重新打包。