IDEA配合Docker容器部署项目
1、Docker开启远程访问配置(此方法有DDOS攻击和挖矿的风险)
1、1 我在阿里云服务安装的docker可以登录阿里云远程服务器查看Docker安装的位置
[root@yangyb ~]# systemctl show --property=FragmentPath docker
FragmentPath=/usr/lib/systemd/system/docker.service
1、2 通过vim命令编辑该文件
[root@yangyb ~]# vim /usr/lib/systemd/system/docker.service
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
# 注释下面行的原配置增加另外一行添加远程Api启动命令
#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutStartSec=0
RestartSec=2
Restart=always
......
1、3 重启服务
systemctl daemon-reload
systemctl restart docker
1、4 测试连接
[root@yangyb ~]# curl 39.101.165.196:2375
curl: (7) Failed connect to 39.101.165.196:2375; 拒绝连接
1、5 开放2375端口
检查防火墙放行端口号
firewall-cmd --zone=public --list-ports
添加docker端口
firewall-cmd --zone=public --add-port=2376/tcp --permanent
更新防火墙规则
firewall-cmd --reload
1、6 再次测试远程连接ok
[root@yangyb ~]# curl 39.101.165.196:2375/info
{"ID":"9f70393c-c6c8-4961-a9a5-065960167dd8","Containers":36
2、IDEA的Docker插件配置
1、下载docker插件
2、插件配置连接Docker
3、创建一个SpringBoot项目并编写DockerFile:DockerFile文件一般创建在项目的跟目录下
#1.定义父镜像(定义当前工程依赖的环境):
FROM openjdk:8
#2.定义作者信息(可以省略不写):
MAINTAINER yyb 2593819926@qq.com
# 创建一个存放该工程的目录
RUN mkdir -p /root/docker/project
#3.将jar包添加到容器(将jar包存入镜像中):
ADD target/cloudAlibaba-sentinel-service-1.0-SNAPSHOT.jar /root/docker/project/cloudAlibaba-sentinel-service-1.0-docker.jar
#4.指定这个容器对外暴露的端口号
EXPOSE 8401
#5.定义容器启动执行的命令: 当通过此镜像启动容器的时候,执行的命令
ENTRYPOINT ["/bin/sh", "-c","java -jar /root/docker/project/cloudAlibaba-sentinel-service-1.0-docker.jar"]
4、配置启动Docker参数
4、启动docker制作项目镜像
Debug运行docker配置
Existing container found: 99a53db7080c68f6fd7f3e9f5ca991d21a296e885615d9ad22d2bb795890df92, removing...
Creating container...
Container Id: c6a760e6cedf2a12900a298ac57b8472af86b7af428db4acfc2b341452fa0f11
Container name: 'sentinel-idea'
Starting container 'sentinel-idea'
'sentinel-idea Dockerfile: cloudAlibaba-sentinel-service/DockerFile' has been deployed successfully.
镜像制作成功但是容器启动失败![打包运行报no main manifest attribute, in XXXX的解决办法]
这个问题主要是因为MANIFEST.MF文件内没有指定启动Main-Class主类
1、pom文件添加如下代码再重新打包
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
<goal>build-info</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
5、再次执行OK!项目启动成功!访问:http://39.101.165.196:8401/testA