从容器外部编辑docker容器中的文件?

h9a6wy2h  于 2023-06-21  发布在  Docker
关注(0)|答案(3)|浏览(205)

我有一个docker容器,该容器在weblogic11中运行,因此Weblogic默认在生产模式下运行,因此我想将生产模式更改为开发模式,为此我需要在容器内编辑文件config.xml,如何从容器外编辑该文件?

wn9m85ua

wn9m85ua1#

你当然可以。有一个名为mounting的Docker配置。要将文件挂载到容器中,请在docker run命令中添加-v参数:

docker run -d -v /path/to/your-file.xml:/path/to/file/inside/container-shoulbe.xml image:version

或者如果你使用docker-compose,你的docker-compose.yml应该是这样的:

...
services:
    web:
        image: xxx:version
        volumes:
            ...
            - /path/to/your-file.xml:/path/to/file/inside/container-shoulbe.xml
...

希望能帮上忙。

lrl1mhuk

lrl1mhuk2#

您可以通过挂载卷来完成此操作。例如

services:
    web:
        image: your_image:tag
        volumes:
          - app_config:/locaiton_of_config_folder

volumes:
  app_config:

这将创建docker卷,它将被挂载到/var/lib/docker/volumes/volume_name/_data,您可以编辑文件。请确保使用sudo,因为文件是由docker内部的root用户创建的。
您可以按docker volume ls检查卷列表。

hrysbysz

hrysbysz3#

有一个非常简单的解决方法来做到这一点。

您希望从正在运行的容器中复制出文件:

docker cp <container_id>:/path/to/file .

你可以用任何你想要的东西编辑这个文件,你只需要把它复制回来:

docker cp file <container_id>:/path/to/file
  • 可选:* 如果你想让你的文件持久化,你只需要提交修改:
docker commit <container_id> <new_image_name>

相关问题