初试Docker 搭建SpringBoot 项目
简介
简单介绍Spring项目使用Docker部署的过程。其中docder的各种好处与使用在这里就不再介绍了。
大家可在这里学习docker www.runoob.com/docker/docker-tutor...
步骤:本机安装 docker -> 新建Spring项目 -> 创建docker file -> 创建镜像 -> 本机测试 -> 上传docker镜像 -> 服务器安装 docker -> 拉取 docker -> 运行 docker.
环境
- 本地环境:Windows8 , java1.8 , idea2017.1.3
- 服务器环境: cenos7.3
docker 本地安装(点击查看)
- 启动docker
在安装目录下打开~\bash.sh
文件。如下表示成功
- 启动docker
打开PowerShell工具,输入docker images
,可知查无镜像。
创建Spring项目
创建成功后, 新建一个TestController
并写上一个简单的接口
@GetMapping("/hello")
public String hello(){
return "hello docker!";
}
运行项目,在浏览器中访问接口
- 打包出 jar 包
在项目的目录下运行mvn install
, 可在tagrat
目录下找到jar 如图:
创建 Dockerfile配置
Dockerfile的创建位置就是在项目的根目录下,与pom.xml平级。在这里我创建了一个名为dockerfile
的文件,无需后缀。
文件内容:
#依赖的基础镜像jdk8
FROM java:8
#需要暴露出去的端口,也就是我项目的端口
EXPOSE 8080
#作者信息
MAINTAINER haile
#将主机环境的jar包,以文件名demo.jar添加到docker镜像中。就是因为这条命令,mavnen运行报错
ADD /target/demo-0.0.1-SNAPSHOT.jar dockerdemo.jar
#启动容器之后,默认的运行命令
ENTRYPOINT ["java","-jar","dockerdemo.jar"]
然后在Dockerfile同级目录下使用命令docker build -t dockerfile .,生成之后使用docker images可以查看到生成的dockerfile镜像,如果是第一次将会较慢,需要下载jdk8的镜像。
创建容器
运行命令 docker run -p 6060:8080 -t dockerfile
,创建一个镜像实例,然后以宿主机的6060端口链接docker容器的8080端口。然后可以运行任意多个实例。能看到 Spring 项目运行成功!
通过浏览器访问宿主机ip和端口, 可正常访问 。
上传镜像
在 hub.docker.com/ 上注册自己的账号并创建仓库,在这里我创建了一个 haixia\dockerfile
仓库,
-上传
先登录,输入刚才的用户名密码。
docker login --username=haixia
上传镜像值hub仓库docker pull dockerfile
这里你会发现 hub 仓库,拒绝我们的请求,我们需要把镜像名改成与hub一致。
docker tag 镜像ID Docker ID/仓库名:新的标签名(tag)docker tag bd213262aa2c haixia/dockerfile:latest
然后在 docker pull haixia/dockerfile
可成功!
服务器端安装与部署
Cenos Docker 安装
Docker 支持以下的 64 位 CentOS 版本:
- CentOS 7
- CentOS 8
- 更高版本…
使用官方安装脚本自动安装curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安装完成后 docker
默认是关闭的! 通过命令开启sudo systemctl start docker
登录并下载镜像文件
$ docker login --username=haixia
$ docker pull haixia/dockerfile
查看镜像
[root@iZf0ksq5sifurtZ /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
haixia/dockerfile latest 665c5b2652fb 3 days ago 661MB
[root@iZf0ksq5sifurtZ /]#
接下来就可以运行运行镜像文件了
docker run -p 6060:8080 -t haixia/dockerfile
将服务器的 6060 端指向 docker 的8080 端口。
浏览器 访问 ip+端口/hello,表示成功!
结语
已初叔完成 docker 的使用。后续将继续研究 spring + mysql +redis 的 docker 部署。
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: