【问题标题】:Execute SSH on running docker container with pass使用 pass 在运行的 docker 容器上执行 SSH
【发布时间】:2020-04-04 11:31:25
【问题描述】:

喂! 我想将我的生产数据库备份恢复到我的 docker 中。所以,我想从外部服务器将它下载到我的容器中。它失败了,因为 ssh 密码...

这是我的 Dockerfile

FROM mysql:5.6
ENV MYSQL_ROOT_PASSWORD password
EXPOSE 3306 
COPY ./scripts /docker-entrypoint-initdb.d/
RUN apt-get update && apt-get install -y ssh 
COPY  ./ssh /home/mysql/.ssh

我下载sql文件的脚本是

completePath=$(ssh -T user@host.ip << EOF
cd /home/data/last/2020*
sourcePath=\$PWD
databaseURI=\`ls gran*\`
sourcePath=\$sourcePath/\$databaseURI
echo \$sourcePath
EOF
)
echo $completePath

scp user@host.ip:/$completePath $PWD
mv database.dmp database.sql

脚本在 Docker 之外运行良好。 这是我的错误

docker run --name database -p 3306:3306  prod-database

权限被拒绝,请重试。 从 host.ip 端口 22:2 收到断开连接:身份验证失败太多 身份验证失败。

希望你能帮助我!谢了!

【问题讨论】:

    标签: docker ssh dockerfile


    【解决方案1】:

    这就是解决办法

    sshpass -f <(printf '%s\n' password) ssh -T user@172.22.18.71
    

    【讨论】:

      猜你喜欢
      • 2016-03-04
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-13
      相关资源
      最近更新 更多