idea创建Springboot项目部署到远程docker

idea创建的Springboot项目部署到远程docker
虚拟机的系统为centos7
一、安装docker
一种方法为:
[xxx@root]# yum install docker(这种比较简单)
第二种方法:自定义安装docker版本
1.卸载旧版本(如果安装过旧版本的话)
[xxx@root]# yum remove docker docker-common docker-selinux docker-engine 
2.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
[xxx@root]# yum install -y yum-utils device-mapper-persistent-data lvm2 (感觉这步不执行也行)
3.设置yum源
[xxx@root]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
4.可以查看所有仓库中所有docker版本,并选择特定版本安装
[xxx@root]# yum list docker-ce --showduplicates | sort -r
5.安装指定版本
[xxx@root]# yum install docker-ce-17.12.0.ce

二、给docker开启远程访问
1.修改docker配置文件
[xxx@root]#vim /usr/lib/systemd/system/docker.service
修改ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock #centos这样加 ubunt加-H fd:// -H tcp://0.0.0.0:2375 保存退出,这一步是将docker映射到虚拟机2375端口
2.重新加载配置文件
[xxx@root]# systemctl daemon-reload 
3.启动docker 
[xxx@root]# systemctl start docker
4.检验是否安装成功
[xxx@root]# netstat -anp|grep 2375
显示docker正在监听2375端口

三、下载idea支持的dock插件包
1.地址为https://plugins.jetbrains.com/plugin/7724-docker-integration注意不是越高越好要看自己的idea版本,与自己版本发布时间接近靠后点就行

2.打开idea
file-->setting-->Plugins-->install plugin from disk(在下面)-->选着你下下来的压缩包(红色说明不行,换个版本试试)

3.设置docker
file-->setting-->Build,Execution,Deployment-->docker-->填写name,选择tcp socket填写Engine API URL为:tcp://192.168.44.104:2375-->点击apply挨着上面框会提示Connection successful

4.编写Dockfile文件
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD /target/eureka_server-0.0.1-SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

以下是命令说明
FROM frolvlad/alpine-oraclejdk8:指Docker Hub上官方提供的java镜像,有了这个基础镜像后,Dockerfile可以通过FROM指令直接获取它的状态——也就是在容器中java是已经安装的,接下来通过自定义的命令来运行Spring Boot应用。
VOLUME /tmp:创建/tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录。
ADD eureka_server-0.0.1-SNAPSHOT.jar app.jar:将应用jar包复制到/app.jar
ENTRYPOINT:表示容器运行后默认执行的命令

5.设置项目运行容器
Edit Configurations(调试旁边那个倒三角)-->点击绿色的+号-->选择docker-->docker image-->填写name,指定创建的Dockerfile,image tag,Container name-->点击最下面绿色的+号-->填写clean package(运行的时候自动会执行clean和package两个命令,并上传镜像到远程docker)

5.远程docker上安装jdk
1)停用docker
[xxx@root]# systemctl stop docker
2)设置国内镜像源,国外的太慢或者访问不到
[xxx@rot]vim /usr/lib/systemd/system/docker.service
添加--registry-mirror=https://registry.docker-cn.com 完整的为:ExecStart=/usr/bin/dockerd --registry-mirror=https://registry.docker-cn.com -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
3)重新加载配置文件
[xxx@root]# systemctl daemon-reload 
4)启动docker
[xxx@root]# systemctl start docker
5)查询要下载的jdk
[xxx@root]# docker search frolvlad
6)下载jdk
[xxx@root]# docker pull frolvlad/alpine-oraclejdk8

四、选择docker,点击运行
idea的docker窗口会运行Dockerfile上的命令
执行完成后在虚拟机中查看上传的docker image
[xxx@root]# docker images
然后启动这个镜像
[xxx@root]# docker run -it -p 8716:8716 cloud:latest /bin/bash &
说明-p是映射端口到虚拟机,前面是虚拟机的端口,后面的是容器的端口,将8716映射到虚拟机,&是放大后台去执行,这样就可以在本地电脑上访问了
http:192.168.44.104:8716/    就会出现eureka_server的首页了

扩展
启动docker平台:
[xxx@root# systemctl start docker   #启动 docker 服务  
[xxx@root# systemctl enable docker  #设置开机启劢 docker 服务 
[xxx@root# docker version   #显示 Docker 版本信息
[xxx@root# docker info  #查看 docker 信息(确认服务运行)显示 Docker 系统信息,包括镜像和容器数。

访问正在运行的 container 容器实例 .
语法: docker exec -it <container id | name> /bin/bash 
[xxx@root]# docker exec -it 87fadc0249a9 /bin/bash  #进入容器 

删除镜像
[xxx@root]# docker  rmi   image_name/ID
若要删除所有的image, 使用命令:
[xxx@root]# docker rmi  $( docker  images -q )

根据容器当前状态做一个 image镜像:
语法: docker commit <container的ID> <image_name> 例
[xxx@root]# docker commit  1d3563200047 centos:nmap 
第二种方法是编写Dockerfile的形式(这个就不贴了,可以百度有很多)

删除指定 container : rm 
[xxx@root]# docker rm 1a63ddea6571 
解决:你可以先把容器1a63ddea6571 关闭,然后再删除戒加-f 强制删除 
[xxx@root]# docker rm -f 1a63ddea6571

查看所有的容器 
[xxx@root]# docker ps -a 
查看容器的日志
[xxx@root]# docker logs c4a213627f1b
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值