FTPクライアントを使用してリモートUbuntuサーバーで実行されているDockerコンテナに転送ファイルを転送するにはどうすればよいですか?サーバーにSSHで接続し、docker cp
を使用できます。これは正常に機能します。しかし、私にはFileZillaのようなものでそうすることができる必要があるクライアントがいます。これは可能ですか?
私はdockerの専門家ではありませんが、これを試すことができます:
コンテナを実行すると、複数のポートを公開できます。したがって、FTPポートも公開できます。
docker run --name containername -p 3000:80 -p 3001:21 -d dockerimagename
この例では、-p 3001:21
コンテナのポート21をサーバーのポート3001に公開しているので、ホストにサーバーのIPを使用し、ポートとして3001を使用してfilezillaで入力できます。
実行中のコンテナイメージにファイルを転送しないでください。 それは本当に悪い考えです。
コンテナは常に出入りします。ほとんどのコンテナオーケストレータはコンテナを自動再起動するため、コンテナが元のイメージからきれいに再起動すると、アップロードしたファイルはワイプされます。
ベストプラクティス:コンテナ内で実行されている本番アプリケーションに変更を加える必要があるたびに、コンテナイメージを再構築して再デプロイします。
テスト目的で必要な場合:コンテナは1つのプロセス(つまり、ENTRYPOINTアプリケーション)のみを実行することになっているため、DockerコンテナはFTPサーバーを公開しません。ただし、docker cp
などのコマンドを使用して、実行中のコンテナーとの間でファイルをコピーできます。