Докер IBM/secure-gateway-client запускается с опцией --F (файл acl)

Я читал документацию и до сих пор не могу понять, как заставить клиент IBM/Secure-Gateway работать с опцией файла ACL в 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

Я дал полный путь к файлу, без пути (как указано выше) и любой промежуточный вариант, который я могу придумать. Контейнер запускается, но не с параметрами, которые я хочу указать в файле ACL.

2 ответа

Решение

Вот что я сделал:

1) Создан Dockerfile для включения файла aclfile.txt

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

2) Создан новый образ докера

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

3) Запустите новый образ докера (необходимо указать опции -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

Надеюсь, это поможет.

Чтобы использовать интерактивную поддержку "cp" в Docker от вашего хоста до экземпляра Docker, вы должны быть в Docker 1.8.0. Вы можете проверить это используя:

docker --version

После этого ваша версия должна отображаться следующим образом. Рекомендуется разрешить запуск Docker от имени пользователя, не являющегося пользователем root, поэтому запустите команду, которая предлагается после того, как вы обновили свой движок до 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-файлов на образ докера, выполните следующие действия:

  1. Запустите команду 'docker ps', чтобы найти идентификатор вашего контейнера

    ИД КОНТЕЙНЕРА ИЗОБРАЖЕНИЯ СОЗДАННЫЕ ИМЕНА ПОРТОВ СОСТОЯНИЯ СТАТУСА ИМЕНА 764aadce386b ibmcom/secure-gateway-client "узел lib/secgwclient" 27 секунд назад Up 26 секунд condescending_nobel

  2. Скопируйте ваш acl.list, используя команду 'docker cp', используя идентификатор контейнера или имя:

    докер cp 01_client.list 764aadce386b:/root/01_client.list

  3. Далее в безопасном шлюзе клиент работает в докере:

    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
    
Другие вопросы по тегам