我正在尝试运行容器并修改其中的某些文件。我试图使用脚本来做到这一点。如果我使用:
docker run -i -t <container> <image>
,它正在给我
STDERR: cannot enable tty mode on non tty input
如果我使用:
docker run -d <container> <image> bash
,容器无法启动。
有没有这样做?
由于
答案 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。