如何使用脚本修改容器中的文件

时间:2015-06-23 07:22:14

标签: bash docker

我正在尝试运行容器并修改其中的某些文件。我试图使用脚本来做到这一点。如果我使用: docker run -i -t <container> <image>,它正在给我

STDERR: cannot enable tty mode on non tty input

如果我使用: docker run -d <container> <image> bash,容器无法启动。

有没有这样做?

由于

2 个答案:

答案 0 :(得分:1)

使用以下方法在后台运行docker镜像:

docker run -d <image>:<version>

使用以下方法检查正在运行的docker容器:

docker ps

如果只有一个容器正在运行,您可以使用以下命令附加到正在运行的docker容器,并使用bash浏览器容器内的浏览器文件/目录:

docker exec -it $(docker ps -q) bash

然后,您可以修改/编辑所需的任何文件,然后重新启动容器。

停止正在运行的容器:

docker stop $(docker ps -q)

运行已停止的容器:

docker start -ia $(docker ps -lq)

答案 1 :(得分:0)

首先,-i -t用于交互式tty模式,用于与容器交互。如果你在脚本中调用它,那么它可能会像你期望的那样工作。

这不是真正容器的使用方式。如果是永久性更改,则应重建映像并将其用于容器。

但是,如果要对容器中反映的文件进行更改,可以考虑使用卷将主机中的目录装载到容器中。这看起来像是:

docker run -v /some/host/dir:/some/container/dir -d container

此时,您在/some/host/dir内更改的任何内容都将位于/some/container/dir的容器内。然后,您可以使用主机上的脚本进行更改,而无需调用docker cli。