1. ホーム
  2. docker

[解決済み] docker cp を使ってホストコンピュータから docker コンテナに rsync する方法

2022-02-10 04:02:24

質問

次のように実行しようとしています。

  1. バックグラウンドでコンテナを起動する

docker run -dit -p 8090:80 --name container repository:dockerfile bash

  1. サブディレクトリを除外したい /data から /test

docker cp /Users/$USER/test container:/test

  1. rsyncを使おうと思ったのは、このためです docker exec rsync -avP --exclude /Users/$USER/test/data /Users/$USER/test/ container:/test/

以下のエラーが発生します。

rsync: Failed to exec ssh: No such file or directory (2)
rsync error: error in IPC code (code 14) at pipe.c(85) [sender=3.1.0]
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(226)
[sender=3.1.0]

ホストからコンテナへのrsyncはどのように行うのですか?

解決方法は?

まずホストディレクトリをコンテナにマップします。

docker run -v /Users/$USER/test:/temp-test -dit -p 8090:80 --name container repository:dockerfile bash

次に、以下のようにrsyncを使用します。

docker exec container rsync -avP --exclude /temp-test/data /temp-test/ /test/