IDEA配合Docker容器部署项目

192 阅读3分钟

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