1,首先生成jar包

生成的jar包位置

 

 

2,把jar包上传到服务器

比如直接cp到/opt/java_app_docker目录下

在相同目录下创建Dockerfile
sudo vim Dockerfile

# 拉取jdk8作为基础镜像
FROM java:8
# 作者
MAINTAINER zbdemo <zbdemo@163.com>
# 添加jar到镜像并命名为user.jar
ADD user-0.0.1-SNAPSHOT.jar user.jar
# 镜像启动后暴露的端口
EXPOSE 8001
# jar运行命令,参数使用逗号隔开
ENTRYPOINT ["java","-jar","user.jar"]

3,然后使用命令打包

docker build -t user .
user表示镜像名称
最后的(点.)表示Dockerfile在当前目录
打包完成后使用docker images查看镜像

4,然后使用docker images 查看生成的镜像

5,启动

使用docker run命令创建并运行容器:
docker run -d --name user -p 8001:8001 user
命令功能
docker run创建并启动容器
–name指定一个容器名称
-d后台运行容器,并返回容器ID
-p指定端口
user需要启动的镜像(名称+版本)不指定版本默认最新版本
符号左边为宿主机,右边为容器空间

6,启动完成,查看启动日志:
docker logs -f -t user
jar日志启动成功,查看容器:
docker ps 

7,测试验证

访问一下,测试效果:
localhost:8001/hello/hello

================================================================

进化操作

================================================================

进化:可复用容器

首先停止并删除刚刚创建的容器和镜像
停止容器:
docker stop user
删除容器:
docker rm user
删除镜像:
docker rmi user

修改Dockerfile文件
sudo vim Dockerfile
修改后内容如下(给jar安排了一个目录,方便挂载到宿主机):

# 拉取jdk8作为基础镜像
FROM java:8
# 作者
MAINTAINER zbdemo <zbdemo@163.com>
# 添加jar到镜像并命名为user.jar
ADD user-0.0.1-SNAPSHOT.jar /app/user.jar
# 镜像启动后暴露的端口
EXPOSE 8001
# jar运行命令,参数使用逗号隔开
ENTRYPOINT ["java","-jar","/app/user.jar"]

然后在/opt/java_app_docker文件夹下面创建jar挂载目录
sudo mkdir app

把你的jar包cp一份到宿主机/opt/java_app_docker/app目录下并改名为user.jar 这里一定要在app目录下存放你的jar,不然容器启动会失败,找不到jar

 

 

打包镜像-创建并运行容器
打包镜像:
docker build -t user .
创建并运行容器:
docker run -d --name user -p 8001:8001 -v /opt/java_app_docker/app:/app user
命令解释如下:

命令功能
docker run创建并启动容器
–name指定一个容器名称
-d后台运行容器,并返回容器ID
-p指定端口
user需要启动的镜像(名称+版本)不指定版本默认最新版本
-v挂载目录到宿主机
符号左边为宿主机,右边为容器空间

这样的方式启动完成之后,更新服务时只需要更换宿主机/opt/java_app_docker/app目录下的jar包,然后重启容器即可实现更新,省略了每次更新删除打包创建等过程

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐