此篇的Demo项目不涉及到数据库、缓存框架、代理转发、负载等复杂情景,仅记录最简单的Spring boot web项目的Docker镜像构建。
一、准备工作
(1)搭建一个简单的Spring boot Web项目,访问Hello World
@RestController
public class HelloController {
@RequestMapping("/hello")
public String index() {
return "Hello World";
}
}
启动项目之后,访问http://localhost:端口号/hello,就可以看到项目返回的Hello World信息
(2)将项目构建成jar包
mvn clean package # 使用Maven打包项目
项目名称为docker-demo,打包出来的jar包为docker-demo-0.0.1-SNAPSHOT.jar
(3)将jar包上传到服务器,这里是将jar包上传到了/mnt/docker/的目录下
二、创建Dockerfile文件
(1)在jar包所在目录,创建名为Dockerfile的文件
sudo touch /mnt/docker/Dockerfile
(2)在Dockerfile文件添加以下内容
# 基于哪个镜像
FROM java:8
# 将本地文件夹挂载到当前服务器
VOLUME /tmp
# 复制文件到容器
ADD docker-demo-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
# 声明需要暴露的端口
EXPOSE 8082
# 配置容器启动后执行的命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
三、构建镜像
使用 docker build 命令构建镜像
sudo docker build -t xanthin/docker-demo:0.0.1 .
格式:docker build -t 仓库名称/镜像名称:(标签) Dockerfile的相对位置
执行之后,终端会输出以下内容:
四、启动与测试镜像
(1)启动镜像
sudo docker run -d -p 8082:8082 xanthin/docker-demo:0.0.1
(2)查看镜像状态
sudo docker ps -a
如果能看到名为xanthin/docker-demo:0.0.1的镜像,并且STATUS为Up,说明镜像已运行
(3)访问spring boot web项目
访问http://Docker宿主机IP:8082/hello,将会看到项目返回的Hello World信息