docker中部署springboot项目,并且外部访问
1、docker安装好之后,先下载几个常用镜像,比如java,docker pull java:8,因为运行项目需要用到java环境,先把java镜像下载下来,方便以此为基础构建新的镜像。
2、准备springboot的jar包。这个其实是基本操作,在eclipse里新建一个spring boot项目,在其pom.xml文件目录下执行cmd命令
mvn clean install -Dmaven.test.skip
便打好了jar包,在target目录下可以找到jar包,名为demo.jar
3、准备dockerfile文件,注意此文件没有后缀,编辑内容,在里面加上
FROM java:8 workdir /app add /demo.jar ./demo.jar
env LOGPATH=/app/log/demo.log \ PROT=8080 cmd java -jar /app/demo.jar
简单解释下dockerfile里面的内容, from 是指以一个基础镜像为基础,这里以一个基础镜像java8为基础。workdir 是工作目录。add 是指把这个demo.jar添加到容器里面 第一个demo.jar是宿主机里面准备好的jar,第二个demo.jar是cp到docker里面的jar包。cmd命令是,是指打好了镜像之后,运行这个jar包启动项目。
4、在linux目录下新建文件夹,存放这些文件,我新建的文件夹叫做my,这里叫啥都行
mkdir my
进入文件夹
cd my
把demo.jar和dockerfile拷贝到my里面去(拷贝方法可以用xshell里的xftp)
5、在这个目录下执行命令,我起名字叫做mydocker,这个可以随便起名字。这个是构建镜像的命令,注意后面有个点,代表在此目录下。
docker build -t mydocker .
6、运行docker
docker run -d -p 4567:8080 mydocker
注意端口号顺序,4567是指在doucker暴露在外部的端口,8080是指docker里面的项目的端口
7、访问 192.168.124.16:4567/get就可以了。
192.168.124.16是我的虚拟机的ip,4567是端口号,get是我的项目里面定义的一个接口名称