一、手动部署
一、Dockerfile、jar包构建镜像
放入同一目录下,执行命令
docker build -t gateway .
二、创建启动镜像
docker run -p 6181:6181 -d \
--ip 172.20.0.5 \
--restart=always \
--net extnetwork \
-e LANG=en_US.UTF-8 \
-e LANGUAGE=en_US:en \
-e LC_ALL=en_US.UTF-8 \
--name word-eureka eureka
docker run -p 8899:8899 -d \
--ip 172.20.0.9 \
--restart=always \
--net extnetwork \
-e LANG=en_US.UTF-8 \
-e LANGUAGE=en_US:en \
-e LC_ALL=en_US.UTF-8 \
--name word-gateway gateway
-p 8899:8899 -d --ip 172.20.0.6 --restart=always --net extnetwork -e LANG=en_US.UTF-8 -e LANGUAGE=en_US:en -e LC_ALL=en_US.UTF-8
docker run -p 9000:9000 -d \
--ip 172.20.0.7 \
--restart=always \
--net extnetwork \
-e LANG=en_US.UTF-8 \
-e LANGUAGE=en_US:en \
-e LC_ALL=en_US.UTF-8 \
--name word-user word-user
docker run -p 9001:9001 -d \
--ip 172.20.0.10 \
--restart=always \
--net extnetwork \
-e LANG=en_US.UTF-8 \
-e LANGUAGE=en_US:en \
-e LC_ALL=en_US.UTF-8 \
--name word-data word-data
-p 9001:9001 -d --ip 172.20.0.10 --restart=always --net extnetwork -e LANG=en_US.UTF-8 -e LANGUAGE=en_US:en -e LC_ALL=en_US.UTF-8
二、集成IDEA
1、Docker开启远程访问
#修改docker服务文件
vi /lib/systemd/system/docker.service
#修改 ExecStart
#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
2、重新加载配置文件
systemctl daemon-reload
3、重启服务
systemctl restart docker.service
4、查看端口是否开启
netstat -nlpt
5、IDEA配置Docker链接
6、Docker-maven插件
依赖
<dependency>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.2</version>
</dependency>
插件
<build>
<finalName>eng-eureka</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.zjn.eng.eureka.EurekaApplication</mainClass>
<outputDirectory>${project.basedir}</outputDirectory>
<jvmArguments>-Dfile.encoding=${project.build.sourceEncoding}</jvmArguments>
<includeSystemScope>true</includeSystemScope>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<!-- <version>1.2.2</version>-->
<configuration>
<!--镜像名称-->
<imageName>${project.artifactId}-test</imageName>
<!--指定标签-->
<imageTags>latest</imageTags>
<!--基础镜像-->
<baseImage>java:8</baseImage>
<!--制作者提供本人信息-->
<maintainer>ZZZ</maintainer>
<!--切换到ROOT目录-->
<workdir>/ROOT</workdir>
<cmd>["java","-version"]</cmd>
<entryPoint>["java","-jar","${pom.build.finalName}.jar"]</entryPoint>
<!--指定DockerFile路径-->
<!-- <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>-->
<!--指定远程docker api地址-->
<dockerHost>http://192.168.0.168:2375</dockerHost>
<!--复制jar包到docker指定目录-->
<resources>
<resource>
<targetPath>/ROOT</targetPath>
<!--用于指定需要复制的根目录,${project.build.directory}表示target目录-->
<directory>${project.build.directory}</directory>
<!--用于指定需要复制的文件,指的时打包后的${project.build.finalName}jar包文件-->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
<!--mvn打包时,构建镜像-->
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
没有配置executions执行命令
mvn clean package -Ppro docker:build