IDEA中一键部署项目到Docker?

什么是docker

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。项目后来加入了 Linux 基金会,遵从了 Apache 2.0 协议,项目代码在GitHub 上进行维护。

Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中广泛应用。

Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。Docker 的基础是 Linux 容器(LXC)等技术。

在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。

1、修改服务器配置,开放Docker的远程连接访问

[root@localhost ~]# vim /usr/lib/systemd/system/docker.service

将ExecStart属性value值改为

/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

2、重启docker

[root@localhost ~]# systemctl daemon-reload 
[root@localhost ~]# systemctl restart docker

3、开放防火墙2375端口

[root@localhost ~]# /sbin/iptables -I INPUT -p tcp --dport 2375 -j ACCEPT
[root@localhost ~]# iptables-save
# Generated by iptables-save v1.4.21 on Wed Oct 17 09:33:07 2018
*nat
:PREROUTING ACCEPT [31:5206]
:INPUT ACCEPT [31:5206]
:OUTPUT ACCEPT [4:304]
:POSTROUTING ACCEPT [4:304]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A DOCKER -i docker0 -j RETURN
COMMIT
# Completed on Wed Oct 17 09:33:07 2018
# Generated by iptables-save v1.4.21 on Wed Oct 17 09:33:07 2018
*filter
:INPUT ACCEPT [24:4973]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [3:340]
:DOCKER - [0:0]
:DOCKER-ISOLATION-STAGE-1 - [0:0]
:DOCKER-ISOLATION-STAGE-2 - [0:0]
:DOCKER-USER - [0:0]
-A INPUT -p tcp -m tcp --dport 2375 -j ACCEPT
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -j RETURN
COMMIT
# Completed on Wed Oct 17 09:33:07 2018

4、随便写个接口,等会进行测试

5、idea安装docker integration插件

插件安装完成重启idea后可以看到底部多了个docker标志

5、接下来给项目打成jar包

6、然后编写DockerFile

我这里找了个相对比较小的jdk,是在官方镜像库找到的 也可以在国内的镜像库里找,如:FROM hub.c.163.com/library/java:8-jre FROM 99taxis/mini-java8

ADD target/*.jar idea-docker-deploy.jar

EXPOSE 8765

ENTRYPOINT ["java", "-jar", "idea-docker-deploy.jar"]

项目右键新建一个没有后缀的File

7、接下来配置idea一键部署

选中第一个

如图进行填写

8、运行容器

可以看到相应的日志

成功 也可以在服务器上打命令查看

[root@localhost ~]# docker images
REPOSITORY                                             TAG                 IMAGE ID            CREATED             SIZE
idea-docker-deploy                                     latest              0b9861752b28        11 minutes ago      210MB
registry.cn-hangzhou.aliyuncs.com/zhaoyoung/mycentos   1.1                 de8fc9f45769        26 hours ago        455MB
mycentos                                               1.1                 de8fc9f45769        26 hours ago        455MB
zhaoyoungtomcat9                                       latest              124517434916        45 hours ago        751MB
myip_son                                               latest              6c9507aea358        3 days ago          398MB
myip_father                                            latest              2c22e721607a        3 days ago          299MB
myip2                                                  latest              dcbb4656e640        3 days ago          299MB
myip                                                   latest              9e3c14f76b1d        3 days ago          299MB
mycentos                                               1.0                 c2d4f6acb9af        4 days ago          455MB
zhaoyoung/nodocstomcat                                 1.0                 84498728984a        6 days ago          463MB
centos                                                 latest              75835a67d134        7 days ago          200MB
redis                                                  3.2                 a17eb18b1c62        2 weeks ago         76MB
tomcat                                                 latest              41a54fe1f79d        4 weeks ago         463MB
hello-world                                            latest              4ab4c602aa5e        5 weeks ago         1.84kB
mysql                                                  5.6                 1f47fade220d        6 weeks ago         256MB
99taxis/mini-java8                                     latest              45f8a8f0a77a        16 months ago       194MB

[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
3f9cc9e975bb        0b9861752b28        "java -jar idea-dock…"   11 minutes ago      Up 11 minutes       0.0.0.0:8765->8765/tcp   idea-docker-

END

好看、转发和辣条会提升颜值哦~

关注我

每天进步一点点

本文分享自微信公众号 - 技术从心(gh_d845efe513db)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-03-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券