从bash文件中通过ssh将文本输入docker容器

时间:2019-06-30 14:38:16

标签: bash docker

我要做的是建立一个本地开发数据库,​​以防止每个人都要经历所有我认为创建脚本有用的步骤。

一旦在终端中,我下面的内容就会停止:

输出

./dbSetup.sh 
hash of container 0d1b182aa6f1
/ #

这时我必须手动输入exit

脚本

#!/bin/bash
command=$(docker ps | grep personal)
set $command
echo "hash of container ${1}"
docker exec -it ${1} sh

有没有办法通过脚本将命令注入dockers容器终端?

2 个答案:

答案 0 :(得分:0)

为了在容器内执行命令,您可以使用如下代码:

save(account, em)

更多信息,请访问:https://docs.docker.com/engine/reference/commandline/exec/

答案 1 :(得分:0)

您的脚本找到一个正在运行的Docker容器并为其打开一个外壳。 “ -it”使其具有交互性并分配一个tty,这就是为什么它继续等待输入的原因,例如“出口”。如果计划执行一些命令来初始化本地开发数据库,​​则建议改用Dockerfile构建映像。即,一旦您确定要运行的命令,它们将成为RUN命令,并且在docker run之后的容器将公开本地开发数据库。

如果您确实希望启动外壳后在外壳中运行某些命令并维护会话,具体取决于基本映像,则可以挂载具有所需命令的bash配置文件,例如-v db_profile:/etc/profile.d,其中db_profile是包含要运行的Shell脚本的文件夹。要使它们运行,您需要执行sh -l以运行登录启动脚本。