将springboot项目部署到docker中
一、环境准备
- 准备一个简单空的springboot项目
- 准备一台有网络的linux服务器,并且已经部署docker
二、部署docker
1.直接参考菜鸟教程的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
如果显示的配置信息的末尾部分出现如下字样,说明配置完成:
三、部署项目
-
编写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的操作,实现重建镜像,再重建容器的步骤
相关文章
- Jease 2.6发布 Java开源内容框架
- JVM调优总结:反思
- JVM调优总结:调优方法
- JVM调优总结:新一代的垃圾回收算法
- JVM调优总结:典型配置举例
- JVM调优总结:分代垃圾回收详述
- JVM调优总结:垃圾回收面临的问题
- JVM调优总结:基本垃圾回收算法
- JVM调优总结:一些概念
- 用Java GUI编写的画板程序
- Java的动态绑定机制
- jOOQ 2.0.2发布 Java的ORM框架
- Java中带复选框的树的实现和应用
- Java网络编程菜鸟进阶:TCP和套接字入门
- 甲骨文与谷歌专利权之争定于今年三月开审
- Java调用C/C++编写的第三方dll动态链接库
- 集成开发环境 NetBeans IDE 7.1正式版发布
- kangle 2.7.5紧急发布 防hash碰撞攻击
- 东方通技术引领模式为国产软件“争权”
- UML中关联,组合与聚合等关系的辨析