已有环境
- CentOS 7
- Docker 1.13.1
- InfoApplication.jar
1. 自己的项目打成jar包 例如: InfoApplication.jar
2.准备Dockerfile文件
FROM java:8 MAINTAINER fuzl <RNGException@163.com> ADD InfoApplication.jar /home/InfoApplication.jar RUN echo 'Asia/Shanghai' >/etc/timezone ENTRYPOINT ["java","-Xms128m","-Xmx512m","-Djava.security.egd=file:/dev/./urandom", "-jar", "/home/InfoApplication.jar"]
参数解释:
# from java:8 拉取一个jdk为1.8的docker image
# maintainer 作者是bingo
# InfoApplication.jar 就是你上传的jar包,替换为jar包的名称
# expose 该容器暴露的端口是多少,就是jar在容器中以多少端口运行
# entrypoint 容器启动之后执行的命令,java -jar demo.jar 即启动jar
3.将上面两个文件放到指定目录下 (不是固定的 随便建)
/usr/local/gep/info
4.构建docker镜像---切换到这个文件下执行(注意后面有个点 代表当前文件夹下)
docker build -t gep_info .
5. 镜像生成后 启动一个容器(--restart=always代表docker启动时自动启动 --name起个别名 -v代表绑定一个数据卷 -p端口 --net-host固定IP防止变为172开头的ip)
docker run --restart=always -it -d --name gep_info -p 10081:10081 --net=host -v /usr/local/gep/info:/home gep_info
6. docker ps 查看容器是否启动了