Springboot integra Docker y envía la imagen al servidor Linux

El caso utiliza el proyecto springboot, integra Docker en IDEA para generar la imagen y publica la imagen en el servidor Linux.

Los pasos específicos son los siguientes:

1. Instale Docker en Centos7

Actualizar la lista de paquetes del sistema

sudo yum update

Instale los paquetes y dependencias necesarios para Docker:

sudo yum install docker

Después de completar la instalación, inicie el servicio Docker. Ejecute el siguiente comando en la terminal:

sudo service docker start

Verifique que Docker esté instalado correctamente. Ejecute el siguiente comando en la terminal:

docker --version

Verifique el estado de ejecución de Docker en Linux:

systemctl status docker

2. Docker permite el acceso remoto:

vim /lib/systemd/system/docker.service

Insertar descripción de la imagen aquí
Recargar configuración

systemctl daemon-reload 
systemctl restart docker 

3. Idea instala el complemento de Docker:

Insertar descripción de la imagen aquí
Prueba de enlace acoplable:

Si la conexión falla: dirección del servidor Docker ip+puerto Docker :
Insertar descripción de la imagen aquí

#查看防火墙状态
systemctl status firewalld

Insertar descripción de la imagen aquí

#添加2375端口
firewall-cmd --permanent --zone=public --add-port=2375/tcp
#防火墙重启
firewall-cmd --reload
#查看开放的端口
firewall-cmd --permanent --zone=public --list-ports
#====开启状态下不需要执行==========
#启动防火墙命令
systemctl start firewalld

Una vez configurado el firewall, idea puede volver a conectarse y probar.

4. Configuración de archivos

pom.xml presenta el complemento de Docker:

   <!-- docker插件配置 -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.4.13</version>
                <executions>
                    <execution>
                        <id>default</id>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!--镜像名字-->
                    <repository>${project.artifactId}</repository>
                    <tag>${project.version}</tag>
                    <buildArgs>
                        <JAR_FILE>
                            ${project.build.finalName}.jar
                        </JAR_FILE>
                    </buildArgs>
                </configuration>
            </plugin>

Cree un nuevo archivo Dockerfile en el directorio raíz del proyecto:

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

Insertar descripción de la imagen aquí

Contenido del archivo Dockerfile:

#基础镜像为java8
#FROM williamyeh/java8:latest
FROM java:8
#作者签名
MAINTAINER  "zxj"
WORKDIR /app/docker-demo
ARG JAR_FILE
# 删除之前的镜像文件
RUN rm -rf /app/docker-demo/eco*
#拷贝jar包,到容器内的指定位置
ADD ./target/eco-0.0.1-SNAPSHOT.jar  /app/docker-demo/eco-0.0.1-SNAPSHOT.jar
#容器对外映射端口,声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
EXPOSE 8082
#运行启动命令
#CMD ["java", "-jar","-Dfile.encoding=UTF-8","eco-0.0.1-SNAPSHOT.jar","--spring.profiles.active=dev"]
ENTRYPOINT ["java", "-jar","/app/docker-demo/eco-0.0.1-SNAPSHOT.jar"]

5. Empaquete la imagen y envíela al servidor Docker.

idea执行mvn clean package docker:build

Insertar descripción de la imagen aquí
Error:
Insertar descripción de la imagen aquí
Maven configura el servicio Docker:
Insertar descripción de la imagen aquí

Configurar variables de entorno:

Insertar descripción de la imagen aquí

Mensaje de error:

No plugin found for prefix 'docker' in the current project and in the plugin groups

Debe agregarse a conf/setting.xml de maven:

<pluginGroups>  
    <pluginGroup>com.spotify</pluginGroup> 
</pluginGroups>

Sigo informando un error:
Insertar descripción de la imagen aquí
finalmente, el comando de reemplazo fue exitoso:

mvn clean package dockerfile:build

Insertar descripción de la imagen aquí

6. Ejecute la imagen

Ver imagen:

docker images

Insertar descripción de la imagen aquí
Ejecutar imagen

docker run -d -p 8082:8083 jingxiangname:0.0.1-SNAPSHOT

El parámetro jingxiangname:0.0.1-SNAPSHOT es el valor de los dos parámetros siguientes:
Insertar descripción de la imagen aquí

Comandos relacionados con Docker:

#启动docker
systemctl start docker

#停止docker
systemctl stop docker

#重启docker
systemctl restart docker

#查看docker状态
systemctl status docker

#开机启动
systemctl enable docker

#列出所有在运行的容器信息:
docker  ps

#删除镜像id或名字均可
docker rmi bf756fb1ae65

#批量删除关键字镜像,替换命令中的guanjianzi
docker rmi --force `docker images | grep guanjianzi| awk '{print $3}'`

Supongo que te gusta

Origin blog.csdn.net/FORLOVEHUAN/article/details/132429713
Recomendado
Clasificación