Docker 容器将文件从本地路径复制到容器中

Docker container copy files from local path into container

我需要将自定义的 keycloak 主题复制到 keycloak 容器中才能像这里提到的那样使用它:

https://medium.com/@auscunningham/change-login-theme-in-keycloak-docker-image-55b5fa5ceec4

确定我的容器 ID 后:docker container ls 并制作如下文件列表:docker exec 7e3a420017a8 ls ./keycloak/themes

它 returns 主题列表正确,但使用它将我的文件从本地复制到容器:

docker cp ./mycustomthem 7e3a420017a8:/keycloak/themes/

docker cp ./mycustomthem 7e3a420017a8:./keycloak/themes/

我收到以下错误:

Error: No such container:path: 7e3a420017a8:/keycloak

我无法想象错误在哪里,因为我可以将文件列出到文件夹和容器中,你能帮我吗? 提前谢谢你。

根据你的新问题更新更新:

尝试以下操作:

docker cp ./mycustomthem 7e3a420017a8:/opt/jboss/keycloak/themes/

Keycloak中正确的path实际上是/opt/jboss/keycloak/themes/

这似乎是解决此问题的一种奇怪方法。为什么不直接使用 Keycloak 容器作为基础镜像的 Dockerfile,然后在构建时将主题复制到容器中呢?然后只是 运行 你构建的图像?从长远来看,如果您决定添加任何插件或自定义,这也将是一个更稳定的模式,并且它提供了一个简单的升级到新版本的路径,只需更改 Dockerfile 中的基本映像。

在我的电脑上工作。

docker cp mycustomthem e67f76e8740b:/opt/jboss/keycloak/themes/raincatcher-theme

您在命令添加完整路径中添加了错误的路径 /opt/jboss/keycloak/themes/raincatcher-theme