# 使用Maven构建Docker镜像
# 添加插件依赖
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.1.0</version>
<executions>
<execution>
<id>build-image</id>
配置构建镜像
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
镜像名
<imageName>mall-tiny/${project.artifactId}:${project.version}</imageName>
打包后上传到的服务器地址
<dockerHost>http://192.168.1.149:2375</dockerHost>
该应用所依赖的基础镜像
<baseImage>java:8</baseImage>
容器启动时执行的命令
<entryPoint>["java", "-jar","/${project.build.finalName}.jar"]
</entryPoint>
<resources>
<resource>
打包后资源文件目录
<targetPath>/</targetPath>
需要复制的文件所在目录,比如maven打包的应用在target目录
<directory>${project.build.directory}</directory>
需要复制的文件,jar包
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
# 修改application.yml
docker容器之间可以通过指定号的服务名称进行访问,服务名称在运行容器时指定
spring:
datasource:
url: jdbc:mysql://db:3306/test?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: 123456
# 使用maven 的package进行打包构建
打包完毕,查看镜像
docker images
# 运行项目
# 启动mysql服务
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7
# 进入mysql容器
docker exec -it mysql /bin/bash
# 配置mysql
- 打开客户端
mysql -uroot -p123456 --default-character-set=utf8 - 修改账号权限
grant all privileges on *.* to 'root'@'%' - 创建数据库
create database test character set utf8 - 拷贝sql文件
docker cp /mydata/test.sql mysql:/ - 导入sql文件
use test;
source /test.sql
# 启动服务
docker run -p 8080:8080 --name test \
--link mysql:db \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/test/logs:/var/logs \
-d test/test:0.0.1-SNAPSHOT
- 开启端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
- 访问测试
http://192.168.1.149:8080/swagger-ui.html
← 自建仓库 dockerfile构建镜像 →