docker发布项目全过程

一、docker容器创建

1.--拉取mysq|8的镜像

docker pull mysql:8

2.--查看本地镜像

docker images

3.--利用镜像创建mysq|8的容器 本机端口为3308,解决编码问题

docker run -p 3308:3306 --name ycmysql8 -e MYSQL_ROOT_PASSWORD=a -d  mysql:8 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

参数解释:

        -p:端口映射,此处映射 主机3308端口 到 容器的3306端口

        --name:后面接容器名

        -e:配置信息,此处配置mysql的root用户的登陆密码

        -d:表示以后台方式运行

4.--查看容器是否启动

docker ps -a

5.--进入容器 -it以交互式终端进入容器

docker exec -it ycmysql8 /bin/bash

6.--登录mysql

mysql -uroot -pa

7.--创建数据库 res 

create database res;

8.--查看数据库

show databases;

9.--选择数据库;

use res;

10.--查看当前数据库下的所有表

show tables;

11.--查看当前数据库中是否有数据

select * from resfood;

12.--创建bridge网络

docker network create -d bridge ycnetwork

13.--两个容器通过bridge网络互连

docker network connect ycnetwork ycmysql8

二、idea配置

测试类:

1.测试类  application-init.yml

注意点:

        1.这是测试中的配置文件。是在本机上访问容器中的库,容器在本机上,通过端口映射就可以访问,所以地址是localhost:3308。

        2.password为ycmysql8上的密码

 2.测试类上加入激活注解

@ActiveProfiles("init")

main类:

1.main类  application.yml

 2.首先保证   ycmysql8  联接到   ycnetwork的那个  bridge 。这样这个  res 上线后才能联接。 

docker network connect ycnetwork ycmysql8
docker network inspect ycnetwork    --查看 ycmysql8对应的ip

 3.application-prod.yml

 url:对应ycmysql8的地址

 4.pom.xml

  <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.6.4</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.xrl</groupId> <artifactId>springbootdcitem</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springbootdcitem</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency> <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.8</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> <version>${spring-restdocs.version}</version> </dependency> <dependency> <groupId>org.springframework.restdocs</groupId> <artifactId>spring-restdocs-mockmvc</artifactId> <scope>test</scope> </dependency> <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>RELEASE</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.6.4</version> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>dockerfile-maven-plugin</artifactId> <version>1.4.13</version> <executions> <execution> <goals> <goal>build</goal> <goal>push</goal> </goals> </execution> </executions> <configuration> <repository>javastack/${project.name}</repository> <tag>${project.version}</tag> <buildArgs> <JAR_FILE>${project.build.finalName}.jar</JAR_FILE> </buildArgs> <dockerfile>Dockerfile</dockerfile> </configuration> </plugin> </plugins> </build> </project>

 5.创建Dockerfile文件到项目目录下

    

     6.docker暴露接口,Maven  package ,  输出的构建docker过程。   测试一下数据库中是否已经生成好了表和数据

7.手动创建docker连接

 

 

  8.--将新创建的  res容器 联接到   ycnetwork的   bridge上. 

docker network connect ycnetwork res

 9.--查看 ycmysql8容器 和 res容器对应的ip

docker network inspect ycnetwork

 10.测试网站

http://localhost:8080/


版权声明:本文为qq_29640169原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。