一、环境准备

  1. 准备一个简单空的springboot项目
  2. 准备一台有网络的linux服务器,并且已经部署docker

二、部署docker

        1.直接参考菜鸟教程的docker安装教程

CentOS Docker 安装 | 菜鸟教程

         2.docker拉取java 8镜像

启动springboot需要jdk的支持,所以直接拉取java8镜像即可

docker pull java:8

 第一次拉取java8镜像时,错误 net/http: TLS handshake timeout

问题原因 :该命令默认从docker远端镜像仓库中拉取镜像,但由于远端仓库的服务器是在国外,我们国内有的用户很可能都访问不了

解决:通过配置/etc/docker/daemon.json为国内的加速引擎可以解决这个问题。

但是又遇到了找不到daemon.json文件的问题

可参考文章Docker 找不到etcdockerdaemon.json问题解决_m0_67401835的博客-CSDN博客_docker 没有daemon.json

具体操作为先跳转到对应目录下

 cd /etc/docker

 新建编辑daemon.json

vim daemon.json

 在文件中保存如下配置

{
  "registry-mirrors": ["https://drcy3veo.mirror.aliyuncs.com"]
}


然后重启docker

sudo systemctl restart docker

这里可以检查一下配置的镜像是否生效:

docker info

如果显示的配置信息的末尾部分出现如下字样,说明配置完成:

三、部署项目

  1. 编写Dockerfile文件(在jar包同级目录下编辑)

FROM java:8  
MAINTAINER DuZhuo
ADD ./dockerpackagedemo-0.0.1-SNAPSHOT.jar  dockerTest.jar 
CMD java -jar dockerTest.jar 

配置解析:

FROM java:8  :定义父镜像,即jdk8
MAINTAINER DuZhuo:定义作者信息
ADD ./dockerpackagedemo-0.0.1-SNAPSHOT.jar  dockerTest.jar :将项目包jar包加入并且重命名
CMD java -jar dockerTest.jar   定义容器启动执行的命令

        2. Dockerfile构建镜像

目录依然需要在jar包那个目录下执行

docker build -f ./Dockerfile -t dockertest .

-f  ./Dockerfile       指目录下的Dockerfile文件

-t dockertest         构建镜像的名称

注意最后的  '.'  

这个'.' 代表当前路径,不添加会有报错 :“docker build” requires exactly 1 argument

详情可参考Docker使用遇到问题:"docker build" requires exactly 1 argument(s)._CC丶Z的博客-CSDN博客

        3.查看镜像

docker images

        查看是否创建成功

        4.创建容器

 docker run -id  --name dockertest -p 8082:8082 dockertest

    前一个dockertest是命名运行容器名称, 后一个dockertest 是镜像名称

       5.查看正在运行的容器

docker ps

        6.关闭服务

docker stop dockertest
docker start dockertest
docker restart dockertest

依次是关闭服务,起服务,重启服务 

        7.版本迭代

先把jar包替换掉,然后重复2-5的操作,实现重建镜像,再重建容器的步骤

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐