我是Docker的新手。我的docker桌面在Windows 10上运行。我必须在docker容器中运行solr,然后将其推送到docker private repository hub。
我正在关注文章https://github.com/docker-solr/docker-solr
我有一个在Linux上使用docker容器运行的azure Web应用程序-该应用程序将从docker hub存储库私有调用docker映像。
http://solrdockerwebapp.azurewebsites.net/solr/#/--this是在azure上运行的Web应用。
我已使用PowerShell命令在Docker桌面中下载了solr。
docker pull solr:latest
docker run -d -p 8983:8983 --name my_solr solr:v1
我在本地浏览器http:// localhost:8983 / solr /#中检查它是否正常运行。现在,我创建一个新的Solr核心文件,该文件在solrdata / data / core_demo文件夹下生成。
但是,如果我将映像推送到docker私有存储库中,则该核心文件不会增加。
下面是我的docker文件
FROM openjdk:11-jre
ARG SOLR_VERSION="8.5.2"
ADD data/core_demo /opt/solr-8.5.2/server/solr/configsets
WORKDIR /opt/solr
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["solr-foreground"]
构建并提交图像。
docker commit my_solr myprivaterepo/solr:latest
docker push myprivaterepo/solr:latest
问题是我的核心文件在本地计算机磁盘下生成
D:/ DockerFolder / var / solr / data / core_demo
但是在将映像推送到docker hub之后,这些核心文件和文件夹未在此处累加。因此,Azure solr Web应用程序仅运行solr,而没有任何核心文件。
任何建议或帮助都会很有帮助。
答案 0 :(得分:1)
我不是Docker专家,在查看您的帖子后,我可以建议您使用以下命令:
docker volume create var
From solr:latest
COPY var/data var/solr/server/solr/data
docker build --tag solr:latest .
docker run -d -v "$PWD/var:/var/solr" -p 8983:8983 --name Your_solrContainer solr:latest solr-precreate gettingstarted
6。在此Docker集线器中将此操作提交并按您在帖子中提到的那样进行推送
docker commit Your_solrContainer myprivaterepo/solr:latest
docker push myprivaterepo/solr:latest
现在,我希望您的Solr核心数据已安装,并且您将能够在运行的Web应用程序中看到它们。唯一缺少的是容量,因此数据可以保留在您的Docker映像上。