说明:我实现的思路是使用docker下载centos7的镜像,在centos7镜像的基础上使用Dockerfile构建jdk镜像,然后再次使用jdk镜像作为基础镜像构建springboot镜像,我这种方法可能比较笨,网上应该有现成的jdk镜像可以使用,但我最终成功了还是很开心的。这只是用来做练习的,后期使用mavendocker插件自动部署springboot项目应该会更方便
1. 下载centos7镜像
docker pull centos:7
2. 创建并启动容器
docker run ‐di ‐v /usr/local/myhtml:/usr/local/myhtml ‐‐name=mycentos
centos:7
3. 关闭centos7容器
docker stop mycentos
2,3步骤可以省略,我只是测试一下镜像是不是能正常使用
4. 编写Dockerfile,构建jdk镜像
4.1 在/usr/local下创建一个文件夹,将下载好的jdk移动到这个文件夹中
mkdir /usr/local/jdk8
4.2 进入目录中,创建一个名称为Dockerfile的文件
vi Dockerfile
DockerFile的文件内容为
#依赖镜像名称和ID
FROM centos:7
#指定镜像创建者信息
MAINTAINER Arrow
#切换工作目录
WORKDIR /usr
RUN mkdir /usr/local/java
#ADD 是相对路径jar,把java添加到容器中
ADD jdk‐8u171‐linux‐x64.tar.gz /usr/local/java/
#配置java环境变量jdk1.8.0-171是jdk压缩包解压后的名称,根据自己的情况做修改
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH
$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
4.3 执行命令,构建镜像
#jdk1.8是镜像的名称,'.'表示当前文件夹
docker build -t='jdk1.8' .
4.4 查看镜像是否构建完成
docker images
5. 编写Dockerfile构建springboot镜像
5.1 在/usr/local/下创建一个目录
mkdir /usr/local/springboot
5.2 将一个springboot的jar包导入到该目录中
mv springboot.jar /usr/local/springboot
5.3 在该目录下创建Dockerfile的文件
vi Dockerfile
#jdk1.8是基础镜像的名称
FROM jdk1.8
ADD springboot.jar /
ENTRYPOINT ["java","-jar","/springboot.jar"]
5.4 执行命令,构建镜像
docker build -t='boot' .
5.5 查看镜像是否构建完成
docker images
5.6 构建并启动容器
docker run -di --name=bootserver -p 9999:8080 boot
name是指定容器的名称,p是端口映射,本地的9999映射容器的8080端口。
注意:我是将docker安装在虚拟机上的,我的数据库使用的是windows上的,如果你跟我一样,必须要保证虚拟机和你的电脑能ping通,而且要设置mysql允许远程访问,设置方法
use mysql update user set host='%' where user='root';
如果想要ip写localhost,可能需要下载mysql镜像,并创建mysql容器。