提示
- 服务器
本文基于阿里云服务器Contos进行教学,本地虚拟机流程也类似。
- 服务器环境
Docker
.
Docker配置
- 修改docker服务配置
vim /lib/systemd/system/docker.service
- 注释原本的内容,添加如下内容,开启tcp的远程连接(连接端口:2375)
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
- 重启资源
systemctl daemon-reload
systemctl restart docker
- 查看是否配置成功
- 方式一:
# 查看端口是否被监听
netstat -nlpt
- 方式二:
curl http://127.0.0.1:2375/version
出现如下即可
- 开放防火墙
# 添加端口
firewall-cmd --add-port=2375/tcp --permanent
# 资源重新加载
firewall-cmd -reload
# 查看开放的端口
firewall-cmd --zon=public --list-ports
# 如果上述命令执行完没有成功,前往购买的服务器开启安全组
- 本地连接测试
服务器IP + (端口)2375/version
测试结果和上述方式二内容一样
Idea配置
设置 -> 构建、执行、部署 -> Docker(如果没有该选项则先安装插件)
项目测试
- pom.xml配置
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<!--远程地址-->
<dockerHost>http://ip:2375</dockerHost>
<!--镜像名称:前缀/项目名-->
<imageName>test-proj/${project.artifactId}</imageName>
<!--Dockerfile文件位置-->
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
<dependencies>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
</plugin>
- Dockerfile
FROM openjdk:21
MAINTAINER Mredust
VOLUME /tmp
ADD docker-dev-1.0.0.jar /test.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/test.jar"]
注意文件放置的位置
- Controller
@RestController
@RequestMapping
public class TestController {
@GetMapping("/test")
public String test() {
return "test docker";
}
}
打包、构建、部署
上述配置完后,终于来到重点,项目的打包部署
clean -> package -> docker build
如果没有看到docker则pom.xml没有刷新加载
- 构建完成
镜像id
镜像名称
- 容器
点击服务,可以看到我们的镜像已经上传到docker环境中(也可以通过
docker images
查看)
- 运行容器
右击容器,点击创建容器,配置运行选项,
-d
后台运行-p 8888:8888
端口映射,最后点击运行
- 本地访问
http://IP:8888/test
出现test docker即部署完成