IBM/secure-gateway-client docker 运行 加上 --F(acl 文件)选项

IBM/secure-gateway-client docker run with the --F (acl file) option

我一直在阅读文档,但仍然无法弄清楚如何使用 docker.

中的 ACL 文件选项将 IBM/Secure-Gateway-client 变为 运行

我拉取了客户端docker镜像,一直使用如下语法:

bash -c 'nohup docker run ibmcom/secure-gateway-client --F aclfile.txt xxx_stage_ng  > tmp/run_sgc.log 2>&1 &'

我在日志中得到的内容如下:

[2015-09-30 11:30:41.764] [ERROR] An exception occurred reading or processing the ACL file, error is Error: ENOENT, no such file or directory 'aclfile.txt'
[2015-09-30 11:30:41.764] [WARN] The ACL has been set to DENY ALL until this is fixed.
[2015-09-30 11:30:43.779] [INFO] The Secure Gateway tunnel is connected

我已经给出了文件的完整路径,没有路径(如上)和我能想到的任何临时选项。容器 运行s,但没有我想在 ACL 文件中指定的选项。

这是我所做的:

1) 创建了一个包含 aclfile.txt

的 Dockerfile
FROM ibmcom/secure-gateway-client
ADD aclfile.txt /tmp/aclfile.txt

2) 构建了一个新的 docker 图像

docker build -t ads-secure-gateway-client .

3) 运行 new docker 图像(需要指定-t 和-i 选项,否则会出现找不到文件的错误):

docker run -t -i ads-secure-gateway-client  --F /tmp/aclfile.txt

4) 得到如下输出:

[2015-09-30 16:50:32.084] [INFO] The current access control list is being reset and replaced by the user provided batch file: /tmp/aclfile.txt
[2015-09-30 16:50:32.086] [INFO] The ACL batch file process accepts acl allow :8000
[2015-09-30 16:50:32.087] [INFO] The ACL batch file process accepts acl deny localhost:22

希望对您有所帮助。

要使用 docker 中的交互式 'cp' 支持,从您的主机到 docker 实例,您必须使用 docker 1.8.0。您可以使用以下方式检查:

docker --version

完成此操作后,您的版本应如下所示。建议您允许 docker 到 运行 作为非根用户,因此 运行 将引擎升级到 1.8.0 或 1.8.2 后建议的命令。

Client:
 Version:      1.8.2
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   0a8c2e3
 Built:        Thu Sep 10 19:21:21 UTC 2015
 OS/Arch:      linux/amd64

Server:
 Version:      1.8.2
 API version:  1.20
 Go version:   go1.4.2
 Git commit:   0a8c2e3
 Built:        Thu Sep 10 19:21:21 UTC 2015
 OS/Arch:      linux/amd64

然后将您的 acl 文件列表推送到 docker 图像,请按照以下步骤操作:

  1. 运行 'docker ps'命令查找你的容器ID

    容器 ID 图像命令创建的状态端口名称 764aadce386b ibmcom/secure-gateway-client "node lib/secgwclient" 27 秒前 上升 26 秒 condescending_nobel

  2. 使用容器 ID 或名称使用 'docker cp' 命令复制您的 acl.list:

    docker cp 01_client.list 764aadce386b:/root/01_client.list

  3. 接下来,在安全网关客户端运行ning中docker:

    cli> F /root/01_client.list

     [2015-10-01 08:12:30.091] [INFO] The current access control list is being reset and replaced by the user provided batch file: /root/01_client.list
     [2015-10-01 08:12:30.093] [INFO] The ACL batch file process accepts acl allow 127.0.0.1:27017
     [2015-10-01 08:12:30.094] [INFO] The ACL batch file process accepts acl allow 127.0.0.1:22