美文网首页
Docker 安装 GateOne,挂载配置文件并使用 HTTP

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

作者: 6ea566508d0d | 来源:发表于2019-11-01 17:03 被阅读0次

    概述

    本文主要讲述了以下 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

          本文链接:https://www.haomeiwen.com/subject/wnnzvctx.html