假设我们已经开发好一个SpringBoot项目

1、云服务器准备

部署一般是用云服务器解决,比如

然后当我们已经拥有一部服务器之后,我们就可以开始部署了,首先我们我们需要安装docker

2、安装Docker

# 安装Docker
yum -y install docker
# 启动docker
systemctl start docker

开启远程docker服务

# 修改docker配置文件
vim /lib/systemd/system/docker.service
# 在ExecStart=后添加配置,远程访问docker的端口
为2375
ExecStart=/usr/bin/dockerd-current -H
tcp://0.0.0.0:2375 -H
unix://var/run/docker.sock \
          --add-runtime dockerrunc=/usr/libexec/docker/docker-runccurrent \
          --default-runtime=docker-runc \
          --exec-opt
native.cgroupdriver=systemd \
          --userland-proxypath=/usr/libexec/docker/docker-proxycurrent \
          --initpath=/usr/libexec/docker/docker-initcurrent \
          --seccompprofile=/etc/docker/seccomp.json \
          $OPTIONS \
          $DOCKER_STORAGE_OPTIONS \
          $DOCKER_NETWORK_OPTIONS \
          $ADD_REGISTRY \
          $BLOCK_REGISTRY \
          $INSECURE_REGISTRY \
          $REGISTRIES
# 重启docker
systemctl daemon-reload
systemctl restart docker

在这里插入图片描述
安全组中开放3306,2375两个端口

3、安装项目所需要的环境(本次用的是一个单体项目)

3.1、mysql安装

# 拉取mysql镜像
 docker pull mysql:5.7
 # 启动容器
 docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.7

使用Navicat/datagrid导入数据库

4、修改项目中对应的mysql路径

在这里插入图片描述

5、开始利用maven制作镜像

项目中Pom文件中添加一下配置

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.7.0</version>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
            <!-- docker-maven-plugin-->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.2.2</version>
                <configuration>
                    <!-- Docker路径 localhost改成自己的服务器公网地址-->
                    <dockerHost>http://localhost:2375</dockerHost>
                    <!-- Dockerfile定义 -->
                    <baseImage>openjdk:11</baseImage>
                    <!-- 作者 -->
                    <maintainer>zhz</maintainer>
                    <resources>
                        <resource>
                            <!-- 复制jar包到docker容器指定目录 -->
                            <targetPath>/</targetPath>
                            <!-- 从哪个包拷贝文件,target包 -->
                            <directory>${project.build.directory}</directory>
                            <!-- 拷贝哪个文件 -->
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                    <workdir>/</workdir>
                    <entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint>
                    <forceTags>true</forceTags>
                    <!-- 镜像名 -->
                    <imageName>${project.artifactId}</imageName>
                    <!-- 镜像版本 -->
                    <imageTags>
                        <imageTag>${project.version}</imageTag>
                    </imageTags>
                </configuration>
            </plugin>
        </plugins>
    </build>

6、打成Jar包

在这里插入图片描述
在这里插入图片描述

7、开始制作镜像

在这里插入图片描述
在这里插入图片描述

8、上服务器中看是否有镜像

在这里插入图片描述

9、启动

这里我用8080是因为我的本地服务有redis,已经占用80端口了

 docker run -d -p 8080:80 gowt-travel:1.0.0-SNAPSHOT 

在这里插入图片描述

10、访问项目

我们可以发现我已经可以访问了。

11、域名映射

进入域名映射系统,比如我的用的是阿里云的。
在这里插入图片描述
进入其中点击解析,这里要配两个
在这里插入图片描述
在这里插入图片描述

我是zhz小白,一个在互联网行业的小白,立志成为一名架构师
https://blog.csdn.net/zhouhengzhe?t=1

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐