격리된 환경에서 여러 대의 컴퓨터가 실행되고 있습니다. 공용 IP 주소를 사용하는 배스천 머신을 통해 액세스할 수 있습니다. 현재 로컬 컴퓨터에서 생성된 Docker 이미지를 격리된 환경의 컴퓨터에 자동으로 배포하려고 합니다.
현재 다음 명령이 있습니다.
docker save test/myapp | gzip | pv | ssh ubuntu@bastion "cat > remote"
이 명령은 파일을 배스천 머신에 복사합니다. 문제는 요새 머신 드라이브에 아무 것도 저장하고 싶지 않다는 것입니다.
공용 IP 주소 없이 격리된 환경에 있는 모든 시스템에 이미지를 전달하기 위해 배스천 머신에 스크립트를 작성하고 싶습니다.
파이프에서 입력을 받으려면 요새 시스템에 일종의 스크립트가 있어야 한다고 생각합니다.
스크립트는 각 머신에 ssh 명령을 실행하고 load image 명령 내에서 docker를 실행해야 합니다. docker 머신을 이용하면 쉽지만, 인터넷 연결이 필요하기 때문에 사용할 수 없습니다. 어떤 아이디어가 있나요?
간단히 말해서: 요새 서버를 통해 내 로컬 컴퓨터의 도커 이미지를 여러 서버로 전달하고 싶습니다.
이런 스크립팅이 처음이라 질문이 사소하다면 죄송하지만 지금까지 해결하지 못했습니다.
답변1
다음과 같이 여러 SSH 파이프를 사용할 수 있습니다.
docker save testi/myapp | gzip | pv | ssh ubuntu@bastion "cat | pv | ssh ubuntu@host \"docker load\" "
이 명령은 배스천을 통해 호스트에 파일을 로드하며 해당 파일은 배스천 머신에 저장되지 않습니다.