用dcker极简打包java.jar镜像并启动
一、本地打包好jar包
二、新建文件夹,将步骤1中的jar包拷贝到文件夹下
三、同目录下新建Dockerfile
xml
## 基础镜像,这里用的是openjdk:8
FROM openjdk:8
## 将步骤一打包好的jar包 拷贝到镜像的 跟目录下[目录可以自定义/jar包名字也可以自定义]
COPY /your-java.jar /your-java.jar
## 在镜像启动容器后执行,这里为启动java服务
CMD ["java","-jar","-Dlogging.file.path=/data/web_log/java","-Dfile.base.path=/data/files/your-java","your-java.jar"]
四、定位到步骤二所在的目录,执行docker image build .脚本,构建镜像
输出参考:
五、查看打好的镜像:docker images
六、用tag指令给镜像命名与标记版本,执行:docker image tag 1908bae47993 your_java:v1,再查看镜像列表,得到如下:
七、启动容器:docker run --name your-java -d -p 7991:7991 your_java:v1,输出容器的id
docker ps -- 查看启动中的容器
docker ps -a --查看所有容器
状态为Up 容器启动成功
可以执行如下命令查看容器日志:
docker logs 8b4104b5b59f -- 8b4104b5b59f为需要查看日志的容器编号
或者
docker logs your-java -- your-java 为容器启动时指定的--name
或者执行命令docker exec -it your-java bash进入容器,找到日志对应的文件地址,在构建镜像时指定文件目录位置为:/data/web_log/java,参考如下:
输入:exit退出容器,回到主机
九、将本地镜像打包成tar包,方便无镜像仓库模式传输
- docker save 镜像名字:版本号 > /root/打包名字.tar
- docker save -o /root/打包名字.tar
镜像名字:版本号
本次尝试使用1,执行:docker save your_java:v1 > /Users/xxxxxx/data/your-java-image.tar
十、将tar包加载为镜像
docker load < /Users/xxxxxx/data/your-java-image.tar