- 程序打为可运行的jar包
- 编写Dockerfile,文件名称不能改变。建议把jar包放在Dockerfile同一目录下,防止出现找不到jar包的异常
#定义父镜像
FROM java:8
#作者信息
MAINTAINER xxx
# 容器的时间
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#容器中的文件夹
RUN mkdir -p /server /server/config /server/logs
#默认的工作目录
WORKDIR /server
#暴露端口
EXPOSE 8080
# 将jar包添加到容器,并放在工作目录下,方便挂载外部配置文件或日志文件夹等
ADD ./xxx-1.0-SNAPSHOT.jar /server/app.jar
#容器启动执行的命令,如运行app.jar,还可以添加其他参数:-Xms512m -Xmx512m
CMD java -jar app.jar
- 运行Dockerfile生成镜像
docker build –t 镜像名称:1.0 .
# .表示在Dockerfile文件在当前目录下
- 创建并运行容器
• -i:保持容器运行。通常与 -t 同时使用。
加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭。
• -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用。
• -d:以守护(后台)模式运行容器。
创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭。
• -it 创建的容器一般称为交互式容器,-id 创建的容器一般称为守护式容器
• --name:为创建的容器命名。
docker run -id
-p 80:80 --restart always # 总是重启
--name=gateway-1.0.1
-v /外部配置文件夹/config:/server/config #配置文件夹映射
-v /外部日志文件夹/logs:/server/logs #日志文件夹映射
--privileged=true #如果没有进入容器的权限时,添加参数
镜像名称:1.0