Docker 安装 GateOne,挂载配置文件并使用 HTTP 请求

概述

本文主要讲述了以下 3 点内容:

  1. GateOne Docker 镜像的大坑:外挂配置文件后,导致原本的配置文件改动问题
  2. 外挂配置文件的正确姿势
  3. 以 HTTP 的形式访问

GateOne Docker 镜像的大坑:外挂配置文件后,导致原本的配置文件改动问题

最近打算弄一个云终端方便自己使用,为了以后迁移和操作方便,有两点简单的需求:

  • 以 Docker 容器运行GateOne,并外挂配置文件和日志,方便以后迁移
  • 以 HTTP 形式访问 GateOne,无论是自签还是通过第三方申请,我都觉得麻烦

但十分无奈的是,发现在 DockerHub 上,关于 GateOne 的文档说明太过简单,而网上大多数关于这方面的文章都停留在 2017 年左右,基本也是跟着 DockerHub 上的说明文档走了一遍,结果当自己操作的时候发现了这个小坑。

大多数文章中,无外挂配置文件,使用 Docker 安装 GateOne 的命令:

docker run -d \
-p [443]:8000 \
-h [hostname] \
--name gateone \
liftoff/gateone gateone

外挂配置文件,使用 Docker 安装 GateOne 的命令:

docker run -d \
-p [443]:8000 \
-h [hostname] \
-v /opt/gateone/config:/etc/gateone/conf.d \
--name gateone \
liftoff/gateone gateone

其实只是多了一个参数:-v /opt/gateone/config:/etc/gateone/conf.d,然后你就会发现有以下几点不同:

  • 外挂容器中少了配置文件:外挂配置文件中,少了 60docker.conf 这个配置文件
  • 10server.conf 配置文件中,部分配置不同:
参数 外挂配置时 无外挂配置文件时 参数说明
log_file_prefix /var/log/gateone/gateone.log /gateone/logs/gateone.log 日志路径
pid_file /var/run/gateone.pid /tmp/gateone.pid PID 路径
port 443 8000 端口
user_dir /var/lib/gateone/users /gateone/users 用户目录

其实,造成 10server.conf 配置文件中这些差异的原因,还是因为 60docker.conf 这个配置文件。

我们细看一下 60docker.conf 这个文件,大概就能了解其中的原因了:

{
    // Custom settings for our Docker container
    "*": {
        "gateone": {
            "auth": "none",
            "port": 8000,
            "uid": 0,
            "gid": 0,
            "pid_file": "/tmp/gateone.pid",
            "log_file_prefix": "/gateone/logs/gateone.log",
            "user_dir": "/gateone/users",
        }
    }
}

很明显,这是在容器启动时,用于修改配置参数的文件。(这些参数有没有很眼熟)
现在我们就知道其中的缘由了:在外挂配置文件时,缺少了 60docker.conf 文件,导致了 10server.conf 文件中的参数没有得到修改,产生了两种启动方式(外挂和无外挂启动)下配置文件的差异。


外挂配置文件的正确姿势

发现了问题解决就十分简单了,核心就是:保证容器内应用的端口和配置文件的端口一致即可
具体步骤如下:

  1. 以外挂的形式启动 GateOne 容器
  2. 修改配置文件中的端口和容器内应用的端口保持一致
  3. 重启容器
  1. 以外挂的形式启动 GateOne 容器
docker run -d \
-p 10020:9999\
-h gateone \
-v /opt/gateone/config:/etc/gateone/conf.d \
-v /opt/gateone/logs:/var/log/gateone/gateone.log \
-v /opt/gateone/users:/var/lib/gateone/users \
--name gateone \
liftoff/gateone gateone

说明:这里分别挂载了配置文件、日志文件、用户目录

  1. 修改配置文件中的端口和容器内应用的端口保持一致
    从上面的命令可以看到,容器内以 9999 的端口启动的应用,故只需把挂载到宿主机中配置文件端口改为 9999端口即可。修改 10server.conf 配置文件:
sed -i "s/443,/9999,/g" /opt/gateone/config/10server.conf
  1. 重启容器
docker restart gateone

当然,如果你十分执着的想用容器无挂载启动时的配置文件,有两种方法:

  1. 无挂载直接启动 GateOne 容器,拷贝容器中的配置文件到宿主机,在以挂的方式启动容器
  2. 以外挂的形式启动 GateOne 容器,再根据 60docker.conf 这个文件,修改相应的配置即可

以 HTTP 的形式访问

以 HTTP 的形式访问 GateOne,就是常规的配置操作了,修改宿主机中 10server.conf 中的相关配置如下即可:

"disable_ssl": true,

参考:https://blog.ilemonrain.com/docker/liftoff-gateone.html
http://www.361way.com/gateone/5962.html
https://www.jianshu.com/p/b8123a8178de

你可能感兴趣的:(Docker 安装 GateOne,挂载配置文件并使用 HTTP 请求)