开发环境
- IDEA:2020.3.2
- Docker:20.10.12
注意,如果没有开启Docker远程连接,请先开启Docker远程连接。
1. 打开或新建一个Web项目
2. 安装Docker插件
(1)选择File
--> Settings
,打开设置窗体;
(2)在设置窗体,左侧选择Plugins
,搜索Docker
并安装
(3) 在设置窗体,左侧选择Buidl,Execution,Deployment
-->Docker
,然后在右侧新建一个Docker Server,并配置Engine API URL
为tcp://10.1.4.123:2375
(修改为自己Docker的IP和端口),如果配置正确,下面会提示Connection successful
3.创建控制器Controller
(一会儿测试用)
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/hello")
public String sayHello(){
return "Hello Docker!";
}
}
4.编写Dockerfile文件
(1)在工程根目录下新建一个文件,命名为Dockerfile
(2)编写Dockerfile文件按
# 基础镜像,openjkd使用8版本
FROM openjdk:8
# 作者
MAINTAINER mayhot
# 系统编码
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
# 声明一个挂载点,容器内此路径会对应宿主机的某个文件夹
VOLUME /tmp
# 应用构建成功后的jar文件被复制到镜像内,名字也改成了app.jar
ADD target/demo-0.0.1-SNAPSHOT.jar app.jar
# 启动容器时的进程
ENTRYPOINT ["java","-jar","/app.jar"]
# 暴露8080端口
EXPOSE 8080
注意:将上面Dockerfile文件的jar名称,修改成你自己的
5. 添加Docker启动项
(1)编辑启动项配置
(2)添加Dockerfile启动项
(3)修改Dockerfile属性
修改基本信息
添加Run Maven Goal
输入要执行的Maven命令clean package -U -DskipTests
,会在每次构建镜像之前,将当前工程清理掉并重新编译
6. 运行Dockerfile
如果构建日志,提示'docker-demo Dockerfile: Dockerfile' has been deployed successfully.
表示在Docker上部署镜像成功,并启动容器成功!
7. 查看镜像和容器状态
使用xshell登录Docker服务,查看镜像和容器状态
(1)查看镜像
[root@bogon ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker-demo latest 39b9d578b981 9 minutes ago 544MB
openjdk 8 47482c603b2a 13 days ago 526MB
hello-world latest feb5d9fea6a5 4 months ago 13.3kB
(2)查看容器
[root@bogon ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ea83565112a4 39b9d578b981 "java -jar /app.jar" 10 minutes ago Up 10 minutes 0.0.0.0:18080->8080/tcp, :::18080->8080/tcp docker-demo
8. 验证
在浏览器中输入http://10.1.4.123:18080/hello
(Docker服务器的地址和端口),返回了“Hello Docker!”,证明部署的应用在Docker容器中正常运行!