docker+springboot
制作一个springboot程序的docker镜像,并挂在到宿主机上一个卷,写入文件
前提:必须先安装好docker环境
1.先制作一个springboot的demo,功能是访问/test1,然后将字符串写入一个文件
2.把springboot打成jar包发布,demo.jar
3.在linux的/opt下新建一个文件夹,比如叫demo1
4.在demo1文件夹下新建一个Dockerfile文件,内容如下:
FROM java:8 VOLUME /usr/test ADD demo.jar app.jar EXPOSE 8086 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
5.把demo.jar上传到demo1这个文件夹下
6.构建docke镜像文件
dockerbuild-troot/demo1:0.1.
root:为运行程序的用户,这个可以随便写
demo1:为镜像别名
root+demo1组成镜像的REPOSITORY
0.1则为镜像的TAG
最后面的.则表示Dockerfile在当前目录
7.构建好之后,可以通过dockerimages查看刚创建好的镜像
8.运行容器
dockerrun-d-p8086:8086--namedemo1aa22967bac37
--namedemo1指定容器的名字为demo1
aa22967bac37为镜像Id
-p8086:8086为把容器内部端口指向宿主机的端口(前面为宿主端口,后面的容器内端口)
9.通过dockerps查看运行的容器
10.访问http://localhost:8086/docker/test1成功返回success
11.再到查看/var/lib/docker/volumes改容器挂在的卷,是否产生了对应的test.txt文件
经查看/var/lib/docker/volumes/eb51659a44ed68492ae81e2d0ae64d7890d01e336b6053a6cdb402f0f9ed90da/_data/test.txt产生了文件内容
把镜像上传到dockerhub,这个额外的工作,只是为了后期维护镜像方便
1.commit一个容器命令:dockercommitCONTAINERIDwherein/ubuntu
dockercommit86b7b78c3b53jasion/demo1
2.需要登录docker账号
dockerlogin
3.将刚才的镜像push到你的hub那里去命令:dockerpushjasion/demo1:latest
这个latest其实就是一个tagname会在hub的Tags那里显示
dockerpushjasion/demo1:0.1
4.现在验证一下命令:dockerinspectjasion/demo1
如何查看springboot日志
1.查看实时日志dockerlog-f容器Id
2.查看本地日志,先用dockerps看容器信息,
然后用dockerinspect容器Id查看容器详细信息,得到长串的容器Id,
根据这个长Id到宿主机器这个目录查看日志
/var/lib/docker/containers/长容器Id/长容器Id-json.log