Docker部署Halo
一、创建Dockerfile
1.创建目录存放Dockerfile相关文件
1
| [root@Mir home]# mkdir yyj
|
2.将halo.jar放入Dockerfile所在目录
1 2
| [root@Mir yyj]# ls Dockerfile halo-1.4.17.jar
|
3.编辑Dockerfile文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| [root@Mir yyj]# vim Dockerfile # 内容如下 [root@Mir yyj]# cat Dockerfile FROM centos:7 # 基于centos:7镜像 MAINTAINER YYJ<[email protected]>
RUN yum update -y \ # 更新软件包,安装JDK 11 && yum install java-11-openjdk -y COPY halo-1.4.17.jar / # 复制halo的jar包到容器内centos的根目录
EXPOSE 8090 # 暴露容器内8090端口(halo默认端口)
ENTRYPOINT ["nohup","java","-jar","/halo-1.4.17.jar","&"] # 执行nohup java -jar /halo-1.4.17.jar & 命令 # & 代表在后台运行 # nohup 在系统后台不挂断地运行命令,退出终端不会影响程序的运行
|
二、生成镜像
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| [root@Mir yyj]# docker build -t halo:1.4 . Sending build context to Docker daemon 81.15MB Step 1/6 : FROM centos:7 ---> eeb6ee3f44bd Step 2/6 : MAINTAINER YYJ<[email protected]> ---> Using cache ---> e8ee294c8d85 Step 3/6 : RUN yum update -y && yum install java-11-openjdk -y ---> Using cache ---> 8cd7779f1c90 Step 4/6 : COPY halo-1.4.17.jar / ---> Using cache ---> f89f94f151a1 Step 5/6 : EXPOSE 8090 ---> Using cache ---> 60f4f91884bf Step 6/6 : ENTRYPOINT ["nohup","java","-jar","/halo-1.4.17.jar","&"] ---> Running in 1da403e54f04 Removing intermediate container 1da403e54f04 ---> 66be95a57964 Successfully built 66be95a57964 Successfully tagged halo:1.4
|
三、启动镜像
1 2
| [root@Mir yyj]# docker run -d -p 80:8090 --name halo halo:1.4 719ff26517bac163394ce8fabe92465dd5d486d819bce46e7f7493e9beae9e4c
|
四、访问IP:80
跳转到halo安装界面
由于有之前的备份文件,此处演示导入备份,不再进行安装
上传备份文件到主机上
进入容器删除.halo目录
1
| [root@719ff26517ba ~]# rm -rf .halo
|
再从主机上传到容器内目标路径
1
| [root@Mir ~]# docker cp /root/.halo halo:/root/
|
重启容器生效
1 2
| [root@Mir ~]# docker restart halo halo
|
五、优化
可将容器内jar包所在目录挂载到主机,以后有新版本更新时直接在主机上替换jar包并重启容器即可