说明 环境 工具 版本 SpringBoot 2.3.3 Docker 19.03.12 Kubernetes 1.14 背景 服务端要支持 N 多个 Tcp Client 连接,所以做了负载,Tcp Client 会根据负载策略连接到不同的后端 Pod 上,这样就需要维护一个路由表:内部 ip <<==>> Tcp Client 的映射关系。所以在项目关闭的时候要有个关闭前处理(把当前 Pod 路由从路由表中去掉)的过程,也就是优雅关闭①。 SpringBoot 优雅关闭 配置 ser…
说明 环境 工具 版本 SpringBoot 2.3.3 Docker 19.03.12 Kubernetes 1.14 背景 服务端要支持 N 多个 Tcp Client 连接,所以做了负载,Tcp Client 会根据负载策略连接到不同的后端 Pod 上,这样就需要维护一个路由表:内部 ip <<==>> Tcp Client 的映射关系。所以在项目关闭的时候要有个关闭前处理(把当前 Pod 路由从路由表中去掉)的过程,也就是优雅关闭①。 SpringBoot 优雅关闭 配置 ser…
安装 Filebeat 已经完全替代了 Logstash-Forwarder 成为新一代的日志采集器,因为它更加轻量、安全。基于 Filebeat + ELK 的部署方案架构图如下: 软件版本: 服务 版本 说明 CentOS 7.6 Docker 18.09.5 Docker Compose 1.25.0 ELK 7.5.1 Filebeat 7.5.1 docker-compose 文件 version: "3" services: es-master: containe…
Docker Compose 是官方的开源项目,主要用来解决多个容器集群的快速编排。是一个用来定义和运行多个 Docker 容器的应用。 安装 Mac 只需安装 Docker CE Desktop Linux 1. 下载 Compose sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/dock…
实验目标 先看一下实验目标是什么样的: 这里存在两台宿主机,55.9 和 55.11,把连个 Container 放在了两台宿主机上,这种方式该怎么进行通信呢,这里就用到了原来没有说到过的 Docker 的另一种网络方式:overlay。 overlay 我们在网络中进行通信,通常是需要在网络层(OSI 参考模型)携带自己的 ip 以及目标地址的 ip,如下: 按照实验环境的情况来说就是,从 10.211.55.9/24 发送信息到 10.211.55.11/24 时,会在网络层带有两个标识,src…
以下是实验所要达到的一个目的: 实验环境 在同一台宿主机上启动两个 Container,一个是自制 Spring Boot 项目,一个是官方的 Redis 镜像。 Redis 直接使用官方 Redis 镜像启动即可,如下: docker run -it --name redis-test --rm redis Spring Boot 项目 在 Spring Boot 项目中,有一个 Controller 如下: @RestController @RequestMapping(value = "/re…
bridge 网络 容器之间的互通 这里首先启动两个容器,一个 name 为:test1,另一个 name 为:test2。如下: [root@Docker1 ~]# docker run --name test1 -d busybox /bin/sh -c "while true; do sleep 60; done" a7e7ecb9de2a8ef47d29630455fd6587602f9fa25dc7db25c70867aa15ebb5eb [root@Docker1 ~]# docker run --…
Docker 允许通过外部访问容器或容器互联的方式来提供网络服务。 外部访问容器 容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射。 当使用 -P 标记时,Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口。 使用 docker container ls 可以看到,本地主机的 49155 被映射到了容器的 5000 端口。此时访问本机的 49155 端口即可访问容器内 web 应用提供的界面。 $ docker r…
在容器中管理数据主要有两种方式: 数据卷(Volumes) 挂载主机目录 (Bind mounts) 数据卷 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特 性: 数据卷可以在容器之间共享和重用 对数据卷的修改会立马生效 对数据卷的更新,不会影响镜像 数据卷默认会一直存在,即使容器被删除 注意:数据卷的使用,类似于 Linux 下对目录或文件进行 mount,镜像中的被指定为挂载点的目录中的文件会隐藏掉,能显示看的是挂载的数据卷。 选择 -v 还是 --m…
有时候使用 Docker Hub 这样的公共仓库可能不方便,用户可以创建一个本地仓库供私人使用。docker-registry是官方提供的工具,可以用于构建私有的镜像仓库。本文内容基于docker-registry v2.x 版本。 安装运行 docker-registry 容器运行 你可以通过获取官方 registry 镜像来运行。 $ docker run -d -p 5000:5000 --restart=always --name registry registry 这将使用官方的 regist…
启动容器 容器是 Docker 又一核心概念。简单的说,容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。 启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态( stopped )的容器重新启动。 因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。 新建并启动 所需要的命令主要为 docker run 。 例如,下面的命令输出一个 Hel…