一、docker的安装
docker是近年比较火的一个开源的应用容器引擎,咱看半天也没太清楚到底有啥用,反正就是感觉像是一个linux的微缩版,这里暂不讨论,有些东西用着用着就知道他的好处及用途了,只是看的话很难真正理解。
PS补充:经过使用后,我目前是这样理解的:docker就是一个虚拟机,其中有三个概念:仓库,镜像,容器。仓库就类似于你ide的工作空间,镜像就相当于工作空间中未启动的项目,而容器则是项目启动的一个实例。镜像一启动,就会创建一个容器,启动几次就会创建几个容器。
我的服务器购买时选择的操作系统是CentOS,所以这里的安装环境也是CentOS
docker安装的话有两种方式,这里我们使用比较方便的yum安装
安装一些必要的系统工具:PS:sudo表示以管理员权限执行,如是root用户(最高权限)可不输入
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
添加软件源信息:
$ sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新 yum 缓存:
$ sudo yum makecache fast
安装 Docker-ce:
$ sudo yum -y install docker-ce
启动 Docker 后台服务
$ sudo systemctl start docker
测试运行 hello-world
$ docker run hello-world
出现下面界面代表docker安装成功了!
二、部署Springboot项目
我这里是新建了一个最简单的springboot项目
1.我们使用idea的maven插件将项目打包,也可以用其他方式打包,在此不赘述。
2.打包后编写Dockerfile文件,创建文件名为Dockerfile的文本文件,内容如下:
FROM java:8
VOLUME /ROOT
ADD demo-0.0.1-SNAPSHOT.jar demo.jar
RUN bash -c 'touch /demo.jar'
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "demo.jar"]
java:8是指Docker Hub上官方提供的java镜像,版本号是8也就是jdk1.8,有了这个基础镜像后,Dockerfile可以通过FROM指令直接获取它的状态——也就是在容器中java是已经安装的,接下来通过自定义的命令来运行Spring Boot应用:
VOLUME指向了一个/root的目录,由于Spring Boot使用内置的Tomcat容器,Tomcat默认使用/tmp作为工作目录。效果就是在主机的/var/lib/docker目录下创建了一个临时文件,并连接到容器的/root。
ADD将项目的jar文件作为app.jar添加到容器
RUN表示在新创建的镜像中执行一些命令,然后把执行的结果提交到当前镜像。这里使用touch命令来改变文件的修改时间,Docker创建的所有容器文件默认状态都是“未修改”。这对于简单应用来说不需要,不过对于一些静态内容(比如:index.html)的文件就需要一个“修改时间”。
EXPOSE 容器暴露端口
ENTRYPOINT 应用启动命令 参数设定
3.将此Dockerfile文件与项目jar包使用Xftp软件上传到服务器上\
4.执行docker build命令,docker就会根据Dockerfile里你定义好的命令进行构建新的镜像。
执行docker images,可以看到新建的镜像
5.使用 指令:docker run -d -p 8080:8080 boot-docker运行该springBoot项目
最后测试一下:可以访问了哦