如何使用脚本修改容器中的文件
我想运行一个容器,并修改其中的某些文件。 我正在尝试使用脚本来做到这一点。 如果我使用: docker run -i -t <container> <image>
,它会给我
STDERR: cannot enable tty mode on non tty input
如果我使用: docker run -d <container> <image> bash
,容器不会启动。
有没有办法做到这一点?
谢谢
使用以下命令在后台运行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)
因此,首先, -i -t
是一个与容器交互的交互式tty模式。 如果你正在脚本中调用这个,那很可能这不会像你期望的那样工作。
这不是真正意义上使用容器的方式。 如果这是一个永久的变化,你应该重build图像,并使用它的容器。
但是,如果要对容器中反映的文件进行更改,则可以考虑使用卷将主机中的目录装入容器中。 这看起来像这样:
docker run -v /some/host/dir:/some/container/dir -d container
此时,您在/some/host/dir
更改的内容将位于/some/container/dir
。 然后,您可以使用主机上的脚本进行更改,而无需调用Docker Cli。