二十九、Docker (5)

目录

  • 一、Maven Docker 插件构建 Docker 镜像
    • 1.1 maven Docker 插件构建 Docker 镜像入门
    • 1.2 maven Docker 插件构建 Docker 镜像,自定义 DockerFile
    • 1.3 maven Docker 插件构建并推送镜像到 Docker 私有仓库
  • 二、手动发布部署微服务项目到 Docker
    • 2.1 项目工程发布镜像规划
    • 2.2 项目工程发布镜像配置
      • 2.2.1 项目 EurekaServer01
      • 2.2.2 创建docker网络
      • 2.2.3 项目 ConfigServer001
      • 2.2.4 数据库的创建
      • 2.2.5 项目ZuulGateWay
      • 2.2.6 项目UserProvdier01
      • 2.2.7 项目 UserWeb06
    • 2.3 编译工程创建镜像(对上面的总结)
    • 2.4 搭建实际运行项目

一、Maven Docker 插件构建 Docker 镜像

首先:启动上节使用的两台服务器(启动docker和启动私服)

二十九、Docker (5)_第1张图片

然后:导入上一节的springcloud案例项目 a-parent-project

开始这节的总结啦啦啦~~~

Maven是一个强大的项目管理与构建工具。可以使用Maven构建Docker镜像,那么我们的工作能得到进一步的简化。

1.1 maven Docker 插件构建 Docker 镜像入门

第一步:修改项目EurekaServer01pom.xml

<build>
	<plugin>
        <groupId>com.spotifygroupId>
        <artifactId>docker-maven-pluginartifactId>
        <version>0.4.13version>
        <configuration>
            
            <imageName>zql/microservice-discovery-eureka:0.0.1imageName>
            
            <baseImage>java:8baseImage>
            
            <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]entryPoint>
            <resources>
                <resource>
                    <targetPath>/targetPath>
                    <directory>${project.build.directory}directory>
                    <include>${project.build.finalName}.jarinclude>
                resource>
            resources>
        configuration>
    plugin>
build>

二十九、Docker (5)_第2张图片

也可以下载 插件地址

第二步:在linux宿主机的 /usr/local下面创建 java-project,并且把项目文件(如下图,父项目下的所有)上传到linux宿主机目录/usr/local/java-project,如下:

步骤一:

二十九、Docker (5)_第3张图片

步骤二:项目路径查看:

二十九、Docker (5)_第4张图片

步骤三:

二十九、Docker (5)_第5张图片

步骤四:

二十九、Docker (5)_第6张图片

第三步:下载并上传 jdk、maven 的安装包到linux服务器

  • jdk-8u131-linux-x64.tar.gz
  • apache-maven-3.6.0-bin.tar.gz

二十九、Docker (5)_第7张图片

解压并重命名:

二十九、Docker (5)_第8张图片

第四步:安装jdk

tar xvf jdk-8u131-linux-x64.tar.gz  -C /usr/local/
cd /usr/local
mv jdk1.8.0_131  jdk
vi /etc/profile

二十九、Docker (5)_第9张图片

#在最后添加
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=$JAVA_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH


#重新加载配置文件
source /etc/profile

#测试jdk是否安装成
java -version

二十九、Docker (5)_第10张图片

二十九、Docker (5)_第11张图片

第五步:安装maven

tar xvf apache-maven-3.6.0-bin.tar.gz  -C /usr/local/
cd /usr/local
mv apache-maven-3.6.0 maven
vi /etc/profile
#在最后添加
export MAVEN_HOME=/usr/local/maven
export PATH=$MAVEN_HOME/bin:$PATH
#重新加载配置文件
source /etc/profile
#测试maven安装
mvn -v

解压缩:
二十九、Docker (5)_第12张图片

解压并重命名:

二十九、Docker (5)_第13张图片

拷贝maven目录,方便下面使用:

二十九、Docker (5)_第14张图片

添加配置文件和验证是否成功安装

二十九、Docker (5)_第15张图片

配置maven加速器,我使用了华为的

二十九、Docker (5)_第16张图片

编辑配置加速器

二十九、Docker (5)_第17张图片

<mirror>
	<id>huaweicloudid>
	<mirrorOf>*mirrorOf>
	<url>https://mirrors.huaweicloud.com/repository/maven/url>       
mirror>

mirrors>

然后刷新项目

二十九、Docker (5)_第18张图片

第六步:编译构建项目
切换到测试JAVA项目目录

cd /usr/local/EurekaServer

二十九、Docker (5)_第19张图片

执行编译指令:

mvn clean package docker:build   #这个命令不行就执行下面一个,都一样
mvn clean -Dmaven.test.skip=true package docker:build   

二十九、Docker (5)_第20张图片

我们会发现终端输出类似于如下的内容:

二十九、Docker (5)_第21张图片

第七步:查看镜像
执行命令:

 docker images

二十九、Docker (5)_第22张图片

第八步:使用镜像创建运行容器

docker run -di --name e1 -p 10086:10086 zql/microservice-discovery-eureka:0.0.1

二十九、Docker (5)_第23张图片

查看日志

docker logs e1

在这里插入图片描述

第九步:访问测试 http://192.168.188.181:10086/

二十九、Docker (5)_第24张图片

1.2 maven Docker 插件构建 Docker 镜像,自定义 DockerFile

上面的示例,我们直接在pom.xml中设置了一些构建的参数。很多场景下,我们希望使用Dockerfile更精确、有可读性地构建镜像。

下面我们带领大家看一下如何使用Dockerfile基于Maven插件构建镜像。

第一步:首先我们在项目的src/main/docker 目录下,新建一个Dockerfile文件

在idea中新建文件,文件出现问号,打不开解决

# 基于哪个镜像
FROM java:8
# 拷贝文件到容器,也可以直接写成ADD xxxxx.jar /app.jar
ADD EurekaServer01-1.0.jar /app.jar
# 声明需要暴露的端口
EXPOSE 8888
# 配置容器启动后执行的命令
CMD ["java","-jar","/app.jar"]

二十九、Docker (5)_第25张图片

第二步:修改pom.xml,修改maven Docker插件,变动地方看下截图

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-maven-pluginartifactId>
        plugin>
        <plugin>
            <groupId>com.spotifygroupId>
            <artifactId>docker-maven-pluginartifactId>
            <version>0.4.13version>
            <configuration>
                
                <imageName>zql/microservice-discovery-eureka:0.0.1imageName>
                <dockerDirectory>${project.basedir}/src/main/dockerdockerDirectory>
                
                
                
                
                <resources>
                    <resource>
                        <targetPath>/targetPath>
                        <directory>${project.build.directory}directory>
                        <include>${project.build.finalName}.jarinclude>
                    resource>
                resources>
            configuration>
        plugin>
    plugins>
build>

二十九、Docker (5)_第26张图片

删除之前构建的一些容器和镜像

二十九、Docker (5)_第27张图片

第三步:上传到linux服务器重新执行编译构建,即可根据Dockerfile生成镜像

二十九、Docker (5)_第28张图片

切换到测试JAVA项目目录

cd /usr/local/EurekaServer01

执行编译构建指令:

mvn clean package docker:build  #这个命令不行就执行下面一个,都一样
mvn clean -Dmaven.test.skip=true package docker:build

构建出现问题解决

二十九、Docker (5)_第29张图片

浏览器进一步验证:http://192.168.188.181:10086/

二十九、Docker (5)_第30张图片

1.3 maven Docker 插件构建并推送镜像到 Docker 私有仓库

前文我们使用docker push 命令实现了镜像的推送,我们也可使用Maven插件推送镜像。我们不妨使用Maven插件推送一个Docker镜像到Docker 私有仓库。

第一步:修改Maven的全局配置文件setttings.xml

  • 在其中添加以下内容,配置Docker私有仓库的用户信息。
cd /usr/local/maven/conf/

vi settings.xml

二十九、Docker (5)_第31张图片

<server>
  <id>docker-hubid>
  <username>adminusername>
  <password>admin123password>
  <configuration>
    <email>[email protected]email>
  configuration>
server>

二十九、Docker (5)_第32张图片

第二步:修改项目EurekaServer01的pom.xml

<build>
	<plugins>
		<plugin>
			<groupId>com.spotifygroupId>
			<artifactId>docker-maven-pluginartifactId>
			<version>0.4.13version>
			<configuration>
				<imageName>192.168.188.181:8086/microservice-discovery-eureka:0.0.2imageName>
				<dockerDirectory>${project.basedir}/src/main/dockerdockerDirectory>
				<resources>
					<resource>
						<targetPath>/targetPath>
						<directory>${project.build.directory}directory>
						<include>${project.build.finalName}.jarinclude>
					resource>
				resources>
             <serverId>docker-hubserverId>
			configuration>
		plugin>
	plugins>
build>

二十九、Docker (5)_第33张图片

serverId:必须和maven配置文件设置的server 节点的id一致

  • idea中做了更改后再次需要上传

二十九、Docker (5)_第34张图片

第三步:执行以下命令,添加pushImage的标识,表示推送镜像

  • 先将上面构建的容器和镜像都删掉

二十九、Docker (5)_第35张图片

mvn clean -DpushImage package docker:build   #这个命令不行就执行下面一个,都一样

mvn clean -Dmaven.test.skip=true -DpushImage package docker:build

二十九、Docker (5)_第36张图片

这里已经显示推送成功了,继续下面私服验证:

二十九、Docker (5)_第37张图片

执行完毕,查看Docker私服已经上传成功镜像: http://192.168.188.182:8081/

二十九、Docker (5)_第38张图片

二、手动发布部署微服务项目到 Docker

2.1 项目工程发布镜像规划

按照项目EurekaServer01的配置方式把相关项目都发布成镜像

序号 项目名称 镜像名称
1 EurekaServer01 192.168.188.138:8086/microservice-discovery-eureka:0.0.1
2 ConfigServer001 192.168.188.138:8086/microservice-config-server:0.0.1
3 ZuulGateWay 192.168.188.138:8086/microservice-zuul-gateway:0.0.1
4 UserProvdier01 192.168.188.138:8086/microservice-provdier-service:0.0.1
5 UserWeb04 192.168.188.138:8086/microservice-user-web:0.0.1

注意:

  • 因为EurekaServer01EurekaServer02只是端口和配置不同,没必要单独创建2个独立镜像,仅仅需要在Docker镜像创建容器的时候传递相关参数即可。
  • 同理ConfigServer001ConfigServer002也公用一个镜像。
  • UserProvdier01UserProvdier02也公用一个镜像。
  • 先打开idea修改如下操作:

二十九、Docker (5)_第39张图片

2.2 项目工程发布镜像配置

2.2.1 项目 EurekaServer01

步骤一、修改上面项目src/main下面创建的docker目录下面的Dockerfile文件

# 基于哪个镜像
FROM java:8
# 拷贝文件到容器,也可以直接写成ADD xxxxx.jar /app.jar
ADD EurekaServer01-*.jar /app.jar
# 声明需要暴露的端口
EXPOSE 8888
#配置环境变量,接受外部传递参数
#启动端口
ENV PORT=""
#注册中心地址
ENV EUREKA=""
# 配置容器启动后执行的命令
ENTRYPOINT ["sh","-c","java $PORT $EUREKA -jar /app.jar"]
#CMD ["java","-jar","/app.jar"]

二十九、Docker (5)_第40张图片

  • 而后删除上面操作过的镜像

二十九、Docker (5)_第41张图片

2.2.2 创建docker网络

先创建一个网络

docker network create mynet    #搭建一个网络
docker network ls			   #查看网络

二十九、Docker (5)_第42张图片

  • 因为上面配置做了修改,所以再次上传

二十九、Docker (5)_第43张图片

mvn clean package -DpushImage docker:build 

二十九、Docker (5)_第44张图片

分别构建Eureka1和Eureka2

docker run -di --name=eureka1 --network=mynet -e PORT="-Dserver.port=10086" -e EUREKA="-Deureka.client.service-url.defaultZone=http://eureka2:10087/eureka" -p 10086:10086 192.168.188.182:8086/zql/microservice-discovery-eureka:0.0.1
 
docker run -di --name=eureka2 --network=mynet -e PORT="-Dserver.port=10087" -e EUREKA="-Deureka.client.service-url.defaultZone=http://eureka1:10086/eureka" -p 10087:10087 192.168.188.182:8086/zql/microservice-discovery-eureka:0.0.1

docker logs eureka1     #通过日志查看是否启动
docker logs eureka2   

二十九、Docker (5)_第45张图片

在这里插入图片描述
命令详细解释如:

容器创建指令:
docker run                           #创建容器指令
-di                                  # d守护式容器、i 运行容器
--name=eureka1                       # 容器名称
--network=mynet                      #容器加入用户自定义网络mynet
-e PORT="-Dserver.port=10086"        #指定环境参数--Eureka注册中心服务启动监听端口
                                     #指定环境参数--Eureka注册中心地址(高可用架构)
-e EUREKA="-Deureka.client.service-url.defaultZone=http://eureka2:10087/eureka" 
-p 10086:10086                        #容器端口号映射
192.168.188.138:8086/microservice-discovery-eureka:0.0.1   #镜像名称

浏览器验证:http://192.168.188.181:10086/

二十九、Docker (5)_第46张图片

http://192.168.188.181:10087/

二十九、Docker (5)_第47张图片

2.2.3 项目 ConfigServer001

步骤一、拷贝EurekaServer01目录下的docker并且修改 Dokcerfile文件的下面部分即可

# 基于哪个镜像
FROM java:8
# 拷贝文件到容器,也可以直接写成ADD xxxxx.jar /app.jar
COPY ConfigServer001-*.jar /app.jar
# 声明需要暴露的端口
EXPOSE 8888
#配置环境变量,接受外部传递参数
#启动端口
ENV PORT=""
#注册中心地址
ENV EUREKA=""
# 配置容器启动后执行的命令
ENTRYPOINT ["sh","-c","java $PORT $EUREKA -jar /app.jar"]

二十九、Docker (5)_第48张图片

步骤二、修改pom.xml,修改maven Docker插件(将上面EurekaServer01的相应plugin复制过来修改下面截图小框就可以了

<build>
	<plugins>
       <plugin>
           <groupId>com.spotifygroupId>
           <artifactId>docker-maven-pluginartifactId>
           <version>0.4.13version>
           <configuration>
               <imageName>192.168.188.182:8086/zql/microservice-config-server:0.0.1imageName>
               <dockerDirectory>${project.basedir}/src/main/dockerdockerDirectory>
               <resources>
                   <resource>
                       <targetPath>/targetPath>
                       <directory>${project.build.directory}directory>
                       <include>${project.build.finalName}.jarinclude>
                   resource>
               resources>
               <serverId>docker-hubserverId>
           configuration>
       plugin>
	plugins>
build>

二十九、Docker (5)_第49张图片

步骤三:进而上传到服务器即可

二十九、Docker (5)_第50张图片

步骤四:执行下列命令上传到私服

 mvn clean package -DpushImage docker:build

二十九、Docker (5)_第51张图片

docker run -di --name=config1 --network=mynet -e PORT="-Dserver.port=7001" -e EUREKA="-Deureka.client.service-url.defaultZone=http://eureka1:10086/eureka,http://eureka2:10087/eureka" -p 7001:7001 192.168.188.182:8086/zql/microservice-config-server:0.0.1

二十九、Docker (5)_第52张图片

  • 将来自己上传github上的文件进行拉取:

二十九、Docker (5)_第53张图片

浏览器输入:http://192.168.188.181:7001/application.yml

  • 再创建一个容器
docker run -di --name=config2 --network=mynet -e PORT="-Dserver.port=7002" -e EUREKA="-Deureka.client.service-url.defaultZone=http://eureka1:10086/eureka,http://eureka2:10087/eureka" -p 7002:7002 192.168.188.182:8086/zql/microservice-config-server:0.0.1

在这里插入图片描述

浏览器查看:http://192.168.188.181:10086/ 至此一共创建了5个容器 7001重复了啊,不然就4个

二十九、Docker (5)_第54张图片

再试试7002是否能拉取github项目 http://192.168.188.181:7002/application.yml

2.2.4 数据库的创建

docker run -di --name=db1 --network=mynet -p 3306:3306 -v /usr/local/mysqlconfig:/etc/mysql/mysql.conf.d -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=springJpa mysql:5.7

二十九、Docker (5)_第55张图片

验证:

二十九、Docker (5)_第56张图片

二十九、Docker (5)_第57张图片

2.2.5 项目ZuulGateWay

步骤一、拷贝EurekaServer01目录下的docker并且修改 Dokcerfile文件的下面部分即可

# 基于哪个镜像
FROM java:8
# 拷贝文件到容器,也可以直接写成ADD xxxxx.jar /app.jar
COPY ZuulGateWay-*.jar /app.jar
# 声明需要暴露的端口
EXPOSE 8888
#配置环境变量,接受外部传递参数
#启动端口
ENV PORT=""
#注册中心地址
ENV EUREKA=""
# 配置容器启动后执行的命令
ENTRYPOINT ["sh","-c","java $PORT $EUREKA -jar /app.jar"]

二十九、Docker (5)_第58张图片

步骤二、修改pom.xml,修改maven Docker插件

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-maven-pluginartifactId>
        plugin>

        <plugin>
            <groupId>com.spotifygroupId>
            <artifactId>docker-maven-pluginartifactId>
            <version>0.4.13version>
            <configuration>
                <imageName>192.168.188.182:8086/zql/microservice-zuul-gateway:0.0.1imageName>
                <dockerDirectory>${project.basedir}/src/main/dockerdockerDirectory>
                <resources>
                    <resource>
                        <targetPath>/targetPath>
                        <directory>${project.build.directory}directory>
                        <include>${project.build.finalName}.jarinclude>
                    resource>
                resources>
                <serverId>docker-hubserverId>
            configuration>
        plugin>
    plugins>
build>

二十九、Docker (5)_第59张图片

步骤三:上传项目服务器

二十九、Docker (5)_第60张图片

步骤四:上传推送到私服

mvn clean -DpushImage package docker:build   #这个命令不行就执行下面一个,都一样

mvn clean -Dmaven.test.skip=true -DpushImage package docker:build

二十九、Docker (5)_第61张图片

步骤五:验证项目

2.2.6 项目UserProvdier01

步骤一、在项目根目录创建docker目录,创建Dockerfile文件

# 基于哪个镜像
FROM java:8
# 拷贝文件到容器,也可以直接写成ADD xxxxx.jar /app.jar
COPY UserProvdier01-*.jar /app.jar
# 声明需要暴露的端口
EXPOSE 8888
#配置环境变量,接受外部传递参数
#监听端口
ENV PORT=""
#应用名称,用来前端显示用,不是serviceId
ENV APPLICATION=""
#注册中心地址
ENV EUREKA=""
# 配置容器启动后执行的命令
ENTRYPOINT ["sh","-c","java $PORT $APPLICATION $EUREKA  -jar /app.jar"]

步骤二、修改pom.xml,修改maven Docker插件

<build>
	<plugins>
		<plugin>
			<groupId>com.spotifygroupId>
			<artifactId>docker-maven-pluginartifactId>
			<version>0.4.13version>
			<configuration>
				<imageName>192.168.188.138:8086/microservice-provdier-service:0.0.1imageName>
				<dockerDirectory>${project.basedir}/dockerdockerDirectory>
				<resources>
					<resource>
						<targetPath>/targetPath>
						<directory>${project.build.directory}directory>
						<include>${project.build.finalName}.jarinclude>
					resource>
				resources>
              <serverId>docker-hubserverId>
			configuration>
		plugin>
	plugins>
build>

步骤三、bootstrap.yml配置文件内容

spring:
  cloud:
    config:
      discovery:
        enabled: true
        service-id: CONFIG-SERVER
      profile: dev
      label: master

步骤四、项目在git存储的配置文件

ProviderVersion: UserProvider0.0.1
spring:
  datasource:
    url: jdbc:mysql://db1:3306/springboot-005?serverTimezone=GMT%2B8
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true
  application:
    name: UserProvider
management:
  endpoints:
    web:
      exposure:
        include: refresh,health,info

注意:配置文件级别 本地配置文件—》-D参数注入配置文件----》远程配置中心配置文件,级别越来越高。

2.2.7 项目 UserWeb06

步骤一、拷贝EurekaServer01目录下的docker并且修改 Dokcerfile文件的下面部分即可

# 基于哪个镜像
FROM java:8
# 拷贝文件到容器,也可以直接写成ADD xxxxx.jar /app.jar
COPY UserWeb06-*.jar /app.jar
# 声明需要暴露的端口
EXPOSE 8888
#配置环境变量,接受外部传递参数
#监听端口
ENV PORT=""
#应用名称
ENV APPLICATION=""
#注册中心服务器地址
ENV EUREKA=""
# 配置容器启动后执行的命令
ENTRYPOINT ["sh","-c","java $PORT $APPLICATION $EUREKA  -jar /app.jar"]

二十九、Docker (5)_第62张图片

步骤二、修改pom.xml,修改maven Docker插件

<build>
	<plugins>
		<plugin>
			<groupId>com.spotifygroupId>
			<artifactId>docker-maven-pluginartifactId>
			<version>0.4.13version>
			<configuration>
				<imageName>192.168.188.182:8086/microservice-user-web:0.0.1imageName>
				<dockerDirectory>${project.basedir}/dockerdockerDirectory>
				<resources>
					<resource>
						<targetPath>/targetPath>
						<directory>${project.build.directory}directory>
						<include>${project.build.finalName}.jarinclude>
					resource>
				resources>
                <serverId>docker-hubserverId>
			configuration>
		plugin>
	plugins>
build>

步骤三、bootstrap.yml配置文件内容

spring:
  application:
    name: UserWeb06
  cloud:
    config:
      discovery:
        enabled: true
        service-id: CONFIG-SERVER
      profile: dev
      label: master

2.3 编译工程创建镜像(对上面的总结)

步骤一、上传项目EurekaServer01到Linux服务器目录:/usr/local/springboot/EurekaServer01

步骤二、执行编译、打包、构建docker镜像指令
进入当前项目目录

cd  /usr/local/springboot/EurekaServer01

编译、打包、发布Docker镜像指令:

mvn clean -Dmaven.test.skip=true -DpushImage package docker:build

二十九、Docker (5)_第63张图片

查看镜像:

docker images

二十九、Docker (5)_第64张图片

步骤三、其他项目
其他项目ConfigServer001、ZuulGateWay、UserProvdier01、UserWeb06也和上面一样,上传,然后进入项目目录执行编译、打包、构建Docker镜像指令。

最终5个镜像全部创建ok

二十九、Docker (5)_第65张图片

在私有仓库可以查看到镜像

二十九、Docker (5)_第66张图片

上面命令汇总:

#搭建网络
docker network create mynet
#查看网络
docker network ls
 
#创建eurka01镜像
mvn clean package -DpushImage docker:build
 
docker run -di --name=eureka1 --network=mynet -e PORT="-Dserver.port=10086" -e EUREKA="-Deureka.client.service-url.defaultZone=http://eureka2:10087/eureka" -p 10086:10086 192.168.188.182:8086/zql/microservice-discovery-eureka:0.0.1
 
docker run -di --name=eureka2 --network=mynet -e PORT="-Dserver.port=10087" -e EUREKA="-Deureka.client.service-url.defaultZone=http://eureka1:10086/eureka" -p 10087:10087 192.168.188.182:8086/zql/microservice-discovery-eureka:0.0.1

 
#创建ConfigServer001镜像
mvn clean package -DpushImage docker:build
 
docker run -di --name=config1 --network=mynet -e PORT="-Dserver.port=7001" -e EUREKA="-Deureka.client.service-url.defaultZone=http://eureka1:10086/eureka,http://eureka2:10087/eureka" -p 7001:7001 192.168.188.182:8086/zql/microservice-config-server:0.0.1
 
docker run -di --name=config2 --network=mynet -e PORT="-Dserver.port=7002" -e EUREKA="-Deureka.client.service-url.defaultZone=http://eureka1:10086/eureka,http://eureka2:10087/eureka" -p 7002:7002 192.168.188.182:8086/zql/microservice-config-server:0.0.1
 
docker run -di --name=db1 --network=mynet -p 3306:3306 -v /usr/local/mysqlconfig:/etc/mysql/mysql.conf.d -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=springJpa mysql:5.7  
  
docker run -di --name=provider1 --network=mynet -e PORT="-Dserver.port=8001" -e APPLICATION="-Dspring.application.name=UserProvdier01" -e EUREKA="-Deureka.client.service-url.defaultZone=http://eureka1:10086/eureka,http://eureka2:10087/eureka" -p 8001:8001  192.168.188.182:8086/zql/microservice-provdier-service:0.0.1
  
docker run -di --name=provider2 --network=mynet -e PORT="-Dserver.port=8002" -e APPLICATION="-Dspring.application.name=UserProvdier02" -e EUREKA="-Deureka.client.service-url.defaultZone=http://eureka1:10086/eureka,http://eureka2:10087/eureka" -p 8002:8002  192.168.188.182:8086/zql/microservice-provdier-service:0.0.1

2.4 搭建实际运行项目

一:项目架构图

二十九、Docker (5)_第67张图片

二:创建docker网络

根据上面的架构图,本次需要创建一个用户自定义网络(上面已经创建过了):
Docker指令:

docker network create mynet

查看docker网络指令:

docker network ls

二十九、Docker (5)_第68张图片

构建网络成功后,所有加入到该用户自定义网络的容器即可通过容器名称相互连接。

步骤三:创建运行docker容器

步骤四:查看docker容器输出日志

通过指令:

docker logs -f -t --tail 10 provider1

就可以查看对应的容器日志输出

步骤五:测试运行

访问:http://192.168.188.138:9001

二十九、Docker (5)_第69张图片

docker至此总结完毕✌✌✌

你可能感兴趣的:(#,计算机(Java进阶)中级,进阶阶段,docker,java,linux)