新手篇,Docker部署SpringBoot

本文详细介绍了如何在华为云EulerOS上安装和配置Docker,包括设置Docker_HOST,调整docker服务配置,安装MySQL容器,以及如何在SpringBoot项目中使用Dockerfile和docker-compose。还提供了Windows环境下的配置步骤和访问应用的方法。
摘要由CSDN通过智能技术生成

一、小编使用云服务器Huawei Cloud EulerOS安装的Docker

具体方法请自行查找

注意以下配置

(1)配置DOCKER_HOST

sudo vim /etc/profile.d/docker.sh

添加export DOCKER_HOST=tcp://localhost:2375  

执行source /etc/profile
执行source /etc/bashrc

(2)配置启动文件

修改 vim /etc/systemd/system/docker.service

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

注意:

修改这个文件的时候,加上内存,否则启动报错 Too many errors, abort

LimitNOFILE=65535

LimitNPROC=65535

LimitCORE=65535

重载配置和重启:

sudo systemctl daemon-reload
sudo systemctl restart docker.service

(3)查看

docker version

二、windows电脑端,需要配置环境

DOCKER_HOST tcp://IP:2375 

IP:是云服务器的ip地址,如果不配置环境变量,默认的是localhost

注意:配置完环境变量需要重启电脑才能生效

三、docker安装mysql

查询mysql镜像
docker search mysql

选择合适的拉取镜像
docker pull mysql:5.7

mkdir /usr/local/mysql
docker run --privileged=true --name mysql --restart=always -v /usr/local/mysql/conf:/etc/mysql/conf.d -v /usr/local/mysql/logs:/logs -v /usr/local/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306 mysql:5.7

docker exec -it mysql bash
mysql -uroot -p
show databases;
create database flow;
再创建表:根据自己实际情况进行创建



修改application.properties文件
spring.datasource.url=jdbc:mysql://IP:3306/flow?useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456

IP地址为docker的mysql地址

四、springboot相关配置

(1)pom文件

            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.4.13</version>
                <executions>
                    <execution>
                        <id>default</id>
                        <goals>
                            <goal>build</goal>
                            <goal>push</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <repository>${project.artifactId}</repository>

                    <!--latest也可以写其他的版本号-->
                    <tag>latest</tag>
                    <buildArgs>
                        <JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
                    </buildArgs>
                </configuration>
            </plugin>

(2)Dockerfile文件配置

在pom同目录下,创建一个Dockerfile文件

# 添加 Java 8 镜像来源
FROM java:8
# 暴露端口号
EXPOSE 8080
# 添加参数
ARG JAR_FILE

# 添加 Spring Boot 包
ADD target/${JAR_FILE} app.jar

# 执行启动命令
ENTRYPOINT ["java","-jar","/app.jar"]

(3)编译打包并推送镜像到docker

mvn clean package

查看镜像
docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
demo                latest              887624374d21        10 minutes ago      679MB

五、docker启动springboot项目

#如果版本号是latest
sudo docker run -p 8080:8080 -t demo

#如果版本号不是latest
sudo docker run -p 8080:8080 -t demo:对应的版本号

最后
2024-02-26 07:52:41.655  INFO 1 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)

如果报错:
driver failed programming external connectivity on endpoint infallible_zhukovsky (971c68b19460238de1a9dadb9188d33da768e83dcccc1aba18ff6c659eda398e): Bind for 0.0.0.0:8080 failed: port is already allocated.

重启下docker后再试
systemctl restart docker

六、访问:http://ip:8080/user/list

正常返回用户表信息数据,则部署成功!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值