最近在学jenkins的时候,发现涉及到了docker的远程发布调用。后续应该还要自己搭建一个docker的本地仓库。
简单描述一下具体是如何实现的:
1、将docker的服务器开启2375端口(注意,这里的开启是将端口直接暴露出去,不用登录也可以通过这个端口操作docker,所以我就踩了这个坑,把我的阿里云服务器整死了,别人使用这个端口上传一个docker镜像,然后运行它,用过镜像挂在到宿主机,然后操控宿主机运行挖矿程序)
当时忘记截图服务器的情况了,看了这个阿里云记录,你们就懂了:
后面完全登录不上服务器,我只好用阿里云的控制台强制关闭服务器了。
回归正题,我们先开启2375这个端口,然后在搞几个ac证书,判断操作人。
开启端口需要修改docker的配置,然后刷新监听服务,重启docker:
将
-H tcp://0.0.0.0:2375
添加至:/lib/systemd/system/docker.service
让后刷新监听线程、重启docker:
systemctl daemon-reloadsystemctl restart docker
记得开启防火墙端口哦。
使用idea远程连接docker:
执行前的maven打包指令:
clean package -U -DskipTests
docker服务器开启2375后,这里就可以直接用服务器账号密码连接:
最麻烦的是maven打包为docker镜像:
maven配置:
<build><finalName>app</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId>打包插件版本,我刚开始没指定,默认使用了高版本,结果高版本的打包插件使用的jdk17,就报错了<version>2.7.0</version><configuration>springboot启动类路径<mainClass>com.quxiao.QueryCheckApplication</mainClass></configuration><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins><resources><resource><directory>src/main/resources</directory><filtering>true</filtering></resource></resources></build>
dockerfile:
# 基础镜像 FROM openjdk:8-jre ## 设置输出格式 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8# 设定时区 ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone#设置容器工作目录 VOLUME /tmp WORKDIR /opt/tyjt # 将宿主机中的文件复制到docker容器中app.jar ADD target/app.jar /opt/tyjt/app.jar ENTRYPOINT ["java", "-jar","/opt/tyjt/app.jar"]# 声明容器提供服务端口 EXPOSE 8001
然后运行就好了: