在Docker中打开ejabberd默认配置(conf)文件的命令

在Docker中打开ejabberd默认配置(conf)文件的命令,docker,ejabberd,Docker,Ejabberd,我试图在docker中访问默认的ejabberd配置文件来定义我的管理员用户,就像在Linux或Windows中使用putty一样 # sudo vi /opt/ejabberd-16.09/conf/ejabberd.yml 我在跟踪博士,发现了一个很有帮助的材料 docker run -d --name ejabberd -v $(pwd)/ejabberd.yml:/home/ejabberd/conf/ejabberd.yml -v $(pwd)/database:/home/ejab

我试图在docker中访问默认的ejabberd配置文件来定义我的管理员用户,就像在Linux或Windows中使用putty一样

# sudo vi /opt/ejabberd-16.09/conf/ejabberd.yml
我在跟踪博士,发现了一个很有帮助的材料

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

但是在docker中找不到打开ejabberd默认conf文件的确切命令,就像在Putty或Linux系统中一样。感谢您的时间和帮助

通常容器没有运行
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
的容器中 在容器内更改此文件将更改主机上的文件,反之亦然,因此您可以直接在主机上浏览或写入该配置