Docker容器中部署springboot应用

一、启动mysql

1、拉取mysql镜像

docker pull mysql:5.7.4

2、运行mysql的容器

docker run -d -p 7000:3306 -v /docker/mysql/conf:/etc/mysql/conf.d -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.4

将容器的3306端口映射到宿主机的7000端口,

 mysql 容器的 配置文件路径在 /etc/mysql/conf.d 数据存储路径在/var/lib/mysql

分别挂在到/docker/mysql/conf、/docker/mysql/data

启动后在本机连接测试成功,192.168.197.128是虚拟机的地址

二、IDEA中的配置

1、IDEA安装Docker Plugin

2、配置Docker开启外部访问

docker 默认是未开启外部访问的

idea 需要连接的话,需要额外配置,使其开启远程访问

vim /usr/lib/systemd/system/docker.service

保险起见 复制之前的文件并注释

使用我们下边这行代码配置 其暴露端口

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:6500 -H unix:///var/run/docker.sock

重启

systemctl daemon-reload
systemctl restart docker

3、IDEA中测试Docker连接

这是可以连接Docker了。

三、pom文件配置

这是我已经准备好了一个最基础的springboot用mybatis访问mysql数据库的应用

pom文件build部分增加

<!-- docker的maven插件,官网:https://github.com/spotify/docker-maven-plugin -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.4.13</version>
                <configuration>
                    <!-- 注意imageName一定要是符合正则[a-z0-9-_.]的,否则构建不会成功 -->
                    <!-- 详见:https://github.com/spotify/docker-maven-plugin    Invalid repository name ... only [a-z0-9-_.] are allowed-->
                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <!-- 指定Dockerfile所在的路径 -->
                    <dockerDirectory>${project.basedir}/docker</dockerDirectory>
                    <dockerHost>http://192.168.197.128:6500</dockerHost>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>

properties增加

<properties>
        <docker.image.prefix>registry.cn-hangzhou.aliyuncs.com/everest4/test</docker.image.prefix>
        <startup.main>com.everest.springboot.SpringbootApplication</startup.main>

    </properties>

四、编写Dockfile文件

#所需基础镜像
FROM openjdk:8-jdk-alpine
#作者信息
MAINTAINER everest<everest@163.com>
#具名挂载
VOLUME /docker/springboot
#端口暴露80
EXPOSE 8888
#将我们的jar 添加到容器中 并取名为application.jar
ADD springboot-1.0.jar application.jar
# 执行命令
ENTRYPOINT ["java","-Xmx350m","-jar" ,"application.jar"]

五、执行打包命令

mvn clean package docker:build

打包完成后就可以看到新的image了

六、运行image

docker run -d -p 6501:8888 2d962139f60e

  没有输出其他的说明启动成功

七、接口测试

这样我们就通过在docker中部署的springboot应用访问到mysql数据库中的数据了。

 

 

参考博客:

1、胖虎儿的docker系列

2、docker入门(利用docker部署web应用)

3、linux查看端口占用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值