用Dockerfile编写一个最简单web项目的docker镜像程序,并作为容器运行

记录用doker运行一个最简单web项目的实现过程:

本文使用的web工程demo为:SpringBoot之旅,开篇 hello world(SpringBoot 2.x, Web Project)

基本步骤分为:

1)环境安装(win7的docker安装、idea安装docker插件)

2)Dockerfile编写,docker镜像的生成

3)生成运行容器,测试

一、环境准备:

1、由于本人用的是win7,安装docker比较麻烦,这里就不叙述了,各位看官自行百度,基本上是安装了docker后,在电脑上会运行一个虚拟机,我的机器上分配的ip地址是192.168.99.100,然后点击docker启动图标,虚拟机运行,弹出命令窗口,自动连接到虚拟机。

用Dockerfile编写一个最简单web项目的docker镜像程序,并作为容器运行_第1张图片用Dockerfile编写一个最简单web项目的docker镜像程序,并作为容器运行_第2张图片

2、给idea安装docker插件

1)打开File->Settings

用Dockerfile编写一个最简单web项目的docker镜像程序,并作为容器运行_第3张图片

2)选择plugin,在搜索框中输入docker,点击Search in repositories

用Dockerfile编写一个最简单web项目的docker镜像程序,并作为容器运行_第4张图片

3)弹出窗口选择 Docker integration,点击Install

用Dockerfile编写一个最简单web项目的docker镜像程序,并作为容器运行_第5张图片

4)安装好之后重启,idea生效,打开Settings->Build,Executino,Deployment->Docker,发现已经自动关联我们安装的Docker:

用Dockerfile编写一个最简单web项目的docker镜像程序,并作为容器运行_第6张图片

二、Coding:

1、在项目目录下新建Dockerfile:

用Dockerfile编写一个最简单web项目的docker镜像程序,并作为容器运行_第7张图片

FROM:拉取jdk环境地址

ADD:添加工程jar包,重命名为hello.jar

EXPOSE:暴露端口号8080     ------暴露的端口号需要与工程的端口号一致,这里工程没设置,端口号是8080

ENTRYPOINT:执行语句

其中jdk的路径可以去网易云个人后台镜像中心找到:

用Dockerfile编写一个最简单web项目的docker镜像程序,并作为容器运行_第8张图片

用Dockerfile编写一个最简单web项目的docker镜像程序,并作为容器运行_第9张图片

用Dockerfile编写一个最简单web项目的docker镜像程序,并作为容器运行_第10张图片

点击复制,得到 docker pull hub.c.163.com/library/java:latest;

然后将 hub.c.163.com/library/java:latest 黏贴到FROM之后(中间有一个空格),如下所示

选择自己需要的jdk版本替换latest,我这里是8-alpine,(注意springboot2.x要求jdk必须是1.8以上)

2、具体代码如下:

FROM hub.c.163.com/library/java:8-alpine

ADD target/*.jar hello.jar

EXPOSE 8080

ENTRYPOINT ["java", "-jar", "/hello.jar"]

 

用Dockerfile编写一个最简单web项目的docker镜像程序,并作为容器运行_第11张图片

3、点击打开Terminal窗口:

用Dockerfile编写一个最简单web项目的docker镜像程序,并作为容器运行_第12张图片

4、输入:mvn install 编译工程jar包

用Dockerfile编写一个最简单web项目的docker镜像程序,并作为容器运行_第13张图片

用Dockerfile编写一个最简单web项目的docker镜像程序,并作为容器运行_第14张图片

5、编译成功后执行构建docker镜像命令:docker build -t  springboot/webdemo .

其中是springboot是地址,webdemo是名称,可以根据需要自己定义,同时不要忘记最后项目名空格后还有一个“.”,表示在当前目录,按回车键执行,即可构建镜像成功:

用Dockerfile编写一个最简单web项目的docker镜像程序,并作为容器运行_第15张图片

6、使用命令:docker images,可以查看我们刚刚生成的镜像

用Dockerfile编写一个最简单web项目的docker镜像程序,并作为容器运行_第16张图片

三、测试

1、运行镜像:docker run -p 8080:8080 -d springboot/webdemo

用Dockerfile编写一个最简单web项目的docker镜像程序,并作为容器运行_第17张图片

2、启动成功,浏览器访问:http://192.168.99.100:8080/hello/say?word=world

用Dockerfile编写一个最简单web项目的docker镜像程序,并作为容器运行_第18张图片

3、还可以再多启动一个容器:docker run -p 8089:8080 -d springboot/webdemo

用Dockerfile编写一个最简单web项目的docker镜像程序,并作为容器运行_第19张图片

4、输入:http://192.168.99.100:8089/hello/say?word=Baron,这样就可以同时以不同的端口号运行多一个程序,达到高可用:

用Dockerfile编写一个最简单web项目的docker镜像程序,并作为容器运行_第20张图片

 

你可能感兴趣的:(docker)