Команда для открытия файла конфигурации ejabberd по умолчанию (conf) в Docker

#docker #ejabberd

#docker #ejabberd

Вопрос:

Я пытаюсь получить доступ к файлу конфигурации ejabberd по умолчанию в docker, чтобы определить моего администратора, как это делается в Linux или в Windows с помощью putty

 # sudo vi /opt/ejabberd-16.09/conf/ejabberd.yml
  

Я следую за документом ejabberd-docker и нашел довольно полезный материал

 docker run -d --name ejabberd -v $(pwd)/ejabberd.yml:/home/ejabberd/conf/ejabberd.yml -v $(pwd)/database:/home/ejabberd/database -p 5222:5222 ejabberd/ecs
  

но не удается найти точную команду для открытия файла conf по умолчанию для ejabberd в docker, как это делается с помощью Putty или в системе Linux. спасибо за ваше время и помощь

Ответ №1:

Обычно контейнеры не sshd запущены, поэтому не следует пытаться подключиться к контейнеру с помощью putty.

Вместо этого перечислите свои контейнеры:

 docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                           NAMES
2570a852e4c1        ejabberd/ecs        "/home/ejabberd/bin/…"   2 minutes ago       Up 2 minutes        1883/tcp, 4369-4399/tcp, 5269/tcp, 5280/tcp, 5443/tcp, 0.0.0.0:5222->5222/tcp   ejabberd
  

затем используйте интерактивный терминал ( -it ), чтобы попасть внутрь контейнера и изучить вещи:

 docker exec -it 2570a852e4c1 sh
  

затем проверьте содержимое вашего файла:

 ~ $ cat /home/ejabberd/conf/ejabberd.yml
###
###              ejabberd configuration file
###
### The parameters used in this configuration file are explained at
###
###       https://docs.ejabberd.im/admin/configuration
  

или

Просто выполните cat , чтобы увидеть содержимое файла, даже не используя интерактивный терминал:

 docker exec 2570a852e4c1 cat /home/ejabberd/conf/ejabberd.yml
  

Согласно вашей docker run команде, вы монтируете ejabberd.yml файл из рабочего каталога вашего хоста (относительно того, где вы запускаете команду) в контейнер по адресу /home/ejabberd/conf/ejabberd.yml .
Изменение этого файла внутри контейнера приведет к изменению файла на хосте и наоборот, поэтому вы можете изучить или записать эту конфигурацию непосредственно на хосте.