我有几台机器在隔离环境中运行。可以通过具有公共 IP 地址的堡垒机访问它们。我目前正在尝试将本地计算机中创建的 Docker 映像自动分发到隔离环境中的计算机。
目前我有以下命令:
docker save test/myapp | gzip | pv | ssh ubuntu@bastion "cat > remote"
此命令将文件复制到堡垒机。问题是我不想在堡垒机驱动器中保存任何内容。
我想在堡垒机中编写一个脚本,将映像传递到没有公共 IP 地址的隔离环境中的所有计算机。
我认为我应该在堡垒机中有某种脚本来从管道获取输入。
该脚本应向每台计算机发出 ssh 命令,并在加载映像命令中运行 docker。使用 docker 机器很容易做到这一点,但我无法使用它,因为它需要互联网连接。有任何想法吗?
简而言之:我想通过堡垒服务器将 docker 映像从本地计算机传递到多个服务器。
我对这种脚本编写很陌生,所以如果我的问题很微不足道,我很抱歉,但到目前为止我还无法解决它。
答案1
可以像这样使用多个 ssh 管道:
docker save testi/myapp | gzip | pv | ssh ubuntu@bastion "cat | pv | ssh ubuntu@host \"docker load\" "
该命令通过堡垒将文件加载到主机,并且文件不保存在堡垒机中。