一、docker容器创建
1.--拉取mysq|8的镜像
docker pull mysql:82.--查看本地镜像
docker images3.--利用镜像创建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 -a5.--进入容器 -it以交互式终端进入容器
docker exec -it ycmysql8 /bin/bash6.--登录mysql
mysql -uroot -pa7.--创建数据库 res
create database res;8.--查看数据库
show databases;9.--选择数据库;
use res;10.--查看当前数据库下的所有表
show tables;11.--查看当前数据库中是否有数据
select * from resfood;12.--创建bridge网络
docker network create -d bridge ycnetwork13.--两个容器通过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对应的ip3.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.测试网站
