当前位置:   article > 正文

如何用Docker容器部署项目,并外部访问?_docker 外部访问

docker 外部访问

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

1、云服务器准备

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

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

2、安装Docker

# 安装Docker
yum -y install docker
# 启动docker
systemctl start docker
  • 1
  • 2
  • 3
  • 4

开启远程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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

在这里插入图片描述
安全组中开放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
  • 1
  • 2
  • 3
  • 4

使用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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50

6、打成Jar包

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

7、开始制作镜像

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

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

在这里插入图片描述

9、启动

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

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

在这里插入图片描述

10、访问项目

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

11、域名映射

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/87500?site
推荐阅读
相关标签
  

闽ICP备14008679号