如何获取对Dataflow工作程序运行的Docker容器的shell访问?
正如this question的评论中所提到的,我们可以设置teardownPolicy=TEARDOWN_NEVER
以在管道完成后保留工作虚拟机。
这允许我们SSH到主机VM,但它不会将我们插入到运行工作任务的Docker容器中。
如何获得对该容器的shell访问权限?
上下文:我想在我的worker中找到一个Docker容器,但docker
二进制文件似乎在worker容器中不可用。
我试图在容器中安装Docker,但是我遇到了错误,并且为了测试下一个命令而不得不启动一个新管道很慢。
答案 0 :(得分:1)
Docker未安装在工作容器中。
目前,Dataflow中没有太多支持从您的工作者中启动Docker容器。
但是我认为以下命令可用于在正在运行的容器中创建shell
# List containers and their IDs
docker ps -notrunc
# Grab the process id of the container
PID=$(docker inspect --format '{{.State.Pid}}' my_container_id)
# Get an interactive shell on the container
nsenter --target $PID --mount --uts --ipc --net --pid