Dockerコンテナにファイルを転送する方法

バックアップなどの目的で、Dockerコンテナからホスト システムにファイルを転送する必要がある場合があります。これは、Linux 上でdocker cpツールを使用して簡単に実行できます。使用方法は次のとおりです。

xr:d:DAFds8YL9ik:2、j:43601822907、t:23032003

Docker CP を使用して Docker コンテナからホストにファイルを転送する方法

Docker コンテナの外部にあるファイルをホスト システムに転送する必要がある場合、最も速く簡単な方法は Docker CP ツールを使用することです。まず、SSH 経由、または端末インターフェイスを備えた物理モニター経由でサーバーにログインします。

ログインしたら、Root アカウントにアクセスします。これを行うには 2 つの方法があります。suコマンドまたはsudo -sコマンドを使用します。

また

sudo -s

ログイン後、docker psコマンドを実行します。このコマンドを実行すると、実行中のすべてのコンテナが表示されます。ファイルの転送元となるコンテナの ID を検索します。次に、次のコマンドを使用してコンテナにログインします。

注: $id をコンテナ ID に置き換えます。

docker exec -it $id /bin/bash

上記のdocker execコマンドを使用して Docker コンテナにログインしたので、コンテナに移動し、Docker CP を使用して転送するファイルを圧縮する必要があります。

この例では、ディレクトリ内の「test」フォルダーを使用します/root/。ニーズに合わせてこのコマンドを変更する必要があります。

tar -czvf my-archive.tar.gz /root/test/

ファイルを圧縮したら、コンテナを終了します。次のexitコマンドを使用して、Docker コンテナーのターミナル インターフェイスを終了できます。

出口

最後に、ファイルをコンテナからホスト システムに転送します。

docker cp CONTAINER_ID:/path/to/archive.tar.gz /host/system/folder/

圧縮せずにファイルを転送する

(安全のため) 最初にファイルを圧縮せずにファイルを転送することはお勧めできません。いくつかのファイルを含むディレクトリを単純に転送したい場合、その方法は次のとおりです。

まず、コンテナにログインしてフォルダーのパスを確認します。以下のコマンドを使用してコンテナにログインできます。

docker exec -it $id /bin/bash

転送したいフォルダーへのパスを決定したら、コンテナーを終了します。次に、次のdocker cpコマンドを実行します。

docker cp CONTAINER_ID:/path/to/your/folder/ /host/system/folder/

Docker CP を使用してホストから Docker コンテナにファイルを転送する方法

Docker コンテナ経由でホストにファイルを転送するだけでなく、ホストからコンテナにファイルを転送して戻すこともできます。それには、Docker コンテナーに転送するファイルの場所を見つけます。

転送したいファイルが見つかったら、次のコマンドを使用してファイルを圧縮します。フォルダを圧縮すると転送が楽になります。

tar -czvf my-archive.tar.gz /path/to/your/folder/

フォルダーを Tar.GZ アーカイブに圧縮した後、ファイルの転送先コンテナーの ID を取得する必要があります。まず、 suまたはsudo -s を使用して root にログインします。

また

sudo -s

root アカウントにログインした後、docker psコマンドを実行します。このコマンドは、実行中のすべてのコンテナーに関する情報を表示します。次に、この情報を取得し、docker cpコマンドを使用して圧縮アーカイブを転送できます。

ドッカーps

docker cp /path/to/my-archive.tar.gz CONTAINER_ID:/path/to/destination/

圧縮せずにファイルを転送する

何も圧縮せずにコンテナに転送したい場合は、次の方法を実行します。まず、 suまたはsudo -s を使用して root にログインします。root としてログインした後、転送したいフォルダーのパスを見つけます。

フォルダー パスを取得したら、docker psコマンドを使用して、ファイルの転送先のコンテナーのコンテナー ID を取得します。次に、次のdocker cpコマンドを使用して、ファイルをシステムにコピーします。

docker cp /path/to/my/file/folder/ CONTAINER_ID:/path/to/destination/

Rsync を使用してホストから Docker コンテナーにファイルを転送する方法

ホストとの間でファイルを転送するには、 docker cpコマンドを使用するだけで十分です。ただし、コンテナからホストにファイルを Rsync することも可能です。SSH サーバーが有効になっていて、ホスト マシン上で実行されている必要があることに注意してください。

開始するには、ターミナルを介してホスト Linux サーバーに root としてログインします。suまたはsudo -s を使用して root アカウントにログインできます。root アカウントにログインした後、docker psコマンドを実行します。

また

sudo -s

ドッカーps

Docker コンテナ ID を見つけて、以下のコマンドを使用してログインします。次に、コンテナーのパッケージ マネージャーを使用して Rsync ツールをインストールします。必ず「$id」をコンテナ ID に置き換えてください。

docker exec -it $id /bin/bash

コンテナーのパッケージ マネージャーを使用して Rsync をインストールした後、以下の Rsync コマンドを使用してコンテナーからホストにファイルを同期します。

rsync -avz -e ssh /path/to/local/files/ user@remote:/path/to/remote/files/


UbuntuサーバーにGitLabをインストールする方法

UbuntuサーバーにGitLabをインストールする方法

GitLab を Ubuntu サーバー上で動作させたいと考えていますか? GitLab は、GitHub のようなサービスに代わる、強力な自己ホスト可能な代替サービスです。これを使用すると、次のことができます

SELinux による Ubuntu Linux サーバーの保護

SELinux による Ubuntu Linux サーバーの保護

SELinux をインストールしてアクティブ化することで、Ubuntu Linux サーバーにセキュリティを追加する方法を学びます。

Cockpit を使用して Linux サーバー上で NFS を構成する

Cockpit を使用して Linux サーバー上で NFS を構成する

Linux サーバーに NFS 共有をマウントする簡単な方法が必要ですか? Cockpit アプリを使用して NFS 共有をマウントする方法を学びます。

Ubuntu 22.04 LTS にアップグレードする方法

Ubuntu 22.04 LTS にアップグレードする方法

Ubuntu 22.04 の長期サポートが登場しました! デスクトップまたはラップトップを最新の Ubuntu リリースにアップグレードする方法を学びます。

最新の Nvidia GPU ドライバーを Linux にインストールする方法

最新の Nvidia GPU ドライバーを Linux にインストールする方法

最新の Nvidia GPU ドライバーを Linux にインストールする方法

Dockerコンテナにファイルを転送する方法

Dockerコンテナにファイルを転送する方法

ファイルを Docker コンテナに転送する必要がありますか? Docker cp ツールを使用すると、コンテナーとの間でファイルを簡単に移動できます。

Linux に DEB ファイルをインストールする方法

Linux に DEB ファイルをインストールする方法

.DEB ファイルとは何ですか? それを使って何をしますか?Linux PC に DEB ファイルをインストールするさまざまな方法を学びましょう。

GOG Galaxy を Linux 上で動作させる方法

GOG Galaxy を Linux 上で動作させる方法

GOG.com のゲームを所有していますか? ビデオ ゲームを楽しむために Linux PC に GOG Galaxy クライアントをセットアップしたいですか? このガイドに従ってください。

CentOS に Docker エンジンをインストールする方法

CentOS に Docker エンジンをインストールする方法

Docker Engine は、Linux およびその他のプラットフォーム用のオープン コンテナ化プログラムです。Docker Engine は、次のように動作する自己完結型コンテナを管理します。

Ferdi とすべてのチャットを 1 つにまとめる方法

Ferdi とすべてのチャットを 1 つにまとめる方法

Slack、Discord、その他多くの生産性向上ツールを Linux システムにインストールすることにうんざりしていませんか? それらをすべて 1 つに結合できたらいいのにと思いますか