一、前置准备
要开始使用 Docker,请参考以下入门指南:Docker 入门
二、Docker 服务端配置
1. 配置 Docker 远程连接端口
首先,新建或修改 /etc/systemd/system/docker.service.d/override.conf 文件,确保其内容如下:
## Add this to the file for the docker daemon to use different ExecStart parameters (more things can be added here)
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd
{
"registry-mirrors": ["https://2v6jvius.mirror.aliyuncs.com"],
"hosts": [
"unix:///var/run/docker.sock",
"tcp://0.0.0.0:2375"
]
}
然后重启 Docker 服务:
systemctl daemon-reload
systemctl restart docker
通过以下命令检查端口是否成功开放:
ss -tuln | grep 2375
如果看到类似以下的输出,说明端口开放成功:
tcp6 0 0 :::2375 :::* LISTEN 8511/dockerd
接下来,输入以下命令以确认 Docker 端口暴露成功:
docker -H 121.204.196.203 ps
若能显示 Docker 的基本信息,说明端口暴露成功。关于更安全地开启 Docker 远程访问,请参考 CA 认证的配置。链接: docker安全连接
三、Idea 客户端连接 Docker
1. 安装插件并重启 Idea
在 IDEA 中安装 Docker 插件,并重启 IDE:
2. 连接远程 Docker
成功连接后,可以看到远程 Docker 的容器和镜像:
为了确保安全,需要进行认证配置,详情请参考:链接: docker安全连接
四、使用 Idea 的 Docker 插件操作镜像和容器,并完成一键发布
1. Docker Image 方式
Docker Image 方式主要用于在 IDEA 中操作远程服务器上的 Docker 镜像和监控容器信息。
- 新建连接
在 IDEA 的设置中(File -> Settings -> Docker),新建连接:
- 使用服务器上的 Docker
- 容器操作
在 IDEA 中可以进行容器的各种操作:
- 镜像操作
拉取镜像:
对已有镜像的操作:
- 镜像拉取
如遇到拉取超时的情况,可以配置国内镜像源,如阿里云的加速器:
- 容器创建与运行
创建并运行 Docker 容器:
新的 IDEA 版本可能需要额外的参数配置:
创建成功后,可以在服务器上查看新创建的容器:
进行容器的重启、停止和删除等操作:
总的来说,Docker Image 插件将服务器上的命令行操作可视化,简化了操作过程。
2. Dockerfile 方式
有关 Dockerfile 的介绍,请参考这篇文章:Dockerfile 介绍
- 准备测试项目
创建一个测试项目:
@Controller
public class HelloController {
@GetMapping("hello")
@ResponseBody
public String hello() {
return "hello world" + new SimpleDateFormat(" [yyyy-mm-dd HH:mm:ss]").format(new Date());
}
}
server.port=8085
- 创建 Dockerfile
# 基础镜像,使用 Alpine 操作系统,OpenJDK 8u201
FROM java:openjdk-8-jdk-alpine
# 作者
MAINTAINER Ximenes <xxxxxxxxx@gmail.com>
# 系统编码
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
# 声明一个挂载点,容器内此路径会对应宿主机的某个文件夹
VOLUME /tmp
# 应用构建成功后的 jar 文件被复制到镜像内,名字也改成了 app.jar
ADD target/*.jar app.jar
# 设置 Alpine 系统时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ
} > /etc/timezone
# 暴露端口
EXPOSE 8085
# 启动容器时的进程
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]
- 创建 Dockerfile 配置
如图所示,创建一个 Dockerfile 配置:
根据下图中的说明进行设置,确保每个步骤都被执行:
在"Run Maven Goal"中输入 clean package,表示每次构建镜像之前都会清理并重新编译构建:
- 运行结果
成功构建并部署镜像后,可以在 Docker 上运行容器:
修改源代码并再次发布镜像即可看到修改后的结果。
3. Docker-Compose 方式
关于 Docker-Compose 的介绍,请参考这篇文章:Docker-Compose 介绍。主要功能是:通过 docker-compose.yml 文件编排运行容器。