Docker solr容器使状态和访问文件

我正在创build我的容器:

docker pull solr docker run --name solr_demo -d -p 8983:8983 -t solr 

我需要configuration一些solr文件,但用户solr不是root用户 。 我也不能安装vim或任何其他程序,因为当我用bash连接到容器的权限。

我的问题是:我可以看到和编辑我的文件系统中的所有容器文件? 这是不是有关docker卷? 如果是的话,任何示例命令将非常感激。 试图阅读文件,但它是如此混乱。

谢谢

您的答案可以解决您的问题,但我不会认为这不仅仅是一种解决方法。 这不是卷的devise。

现在,回答你的问题。

您可以以root用户身份login,并以这种方式执行您的操作:

 docker exec -it -u root solr_demo bash 

我会推荐另一种方法。 正如Solr Docker镜像文档 ('扩展镜像'部分)中所述,您可以将任何初始化脚本放在容器文件系统的/docker-entrypoint-initdb.d/文件夹中(通过挂载卷或扩展镜像并复制脚本那里)。 它们将在Solr服务启动之前运行。

不完全是我之后,但它解决了我的问题。

 # create a directory to store the server/solr directory $ mkdir /home/docker-volumes/mysolr1 # make sure its host owner matches the container's solr user $ sudo chown 8983:8983 /home/docker-volumes/mysolr1 # copy the solr directory from a temporary container to the volume $ docker run -it --rm -v /home/docker-volumes/mysolr1:/target solr cp -r server/solr /target/ # pass the solr directory to a new container running solr $ SOLR_CONTAINER=$(docker run -d -P -v /home/docker-volumes/mysolr1/solr:/opt/solr/server/solr solr) # create a new core $ docker exec -it --user=solr $SOLR_CONTAINER solr create_core -c gettingstarted # check the volume on the host: $ ls /home/docker-volumes/mysolr1/solr/ configsets gettingstarted README.txt solr.xml zoo.cfg