如何用Docker容器部署项目,并外部访问?
docker部署项目
·
假设我们已经开发好一个SpringBoot项目
1、云服务器准备
部署一般是用云服务器解决,比如
- 我个人用的是腾讯云:
- https://curl.qcloud.com/82vK4zXG一年低至72元就有一个云服务器
- 阿里云
然后当我们已经拥有一部服务器之后,我们就可以开始部署了,首先我们我们需要安装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
更多推荐
已为社区贡献2条内容
所有评论(0)