ホストとDockerコンテナ間でファイルをコピーする方法 - TechRepublic

ホストとDockerコンテナ間でファイルをコピーする方法 - TechRepublic

あなたのビジネスはコンテナに依存しています。今でなくても、いずれそうなるでしょう。開発者はこれを理解しており、すでに準備が整っているか、あるいは準備を進めています。ご存知ない方のために説明すると、コンテナ開発は標準的なアプリケーション開発ほど単純ではありません。コンテナでは、より多くの可動部品が関わり、より多くの作業員が関わってきます。

参照: Kubernetes: チートシート (無料 PDF) (TechRepublic)

しかし、一度プロセスを決めてしまえば、あとはスムーズに進めることができます。そのためには、Dockerコンテナの使いやすさを理解することが重要です。例えば、ホストから実行中のコンテナにファイルをコピーするプロセスを考えてみましょう。実に簡単です。

なぜそうするのでしょうか?実は簡単です。開発者はコンテナの外部(例えばIDE)でコードを書きたい場合があるかもしれません。あるいは、複数のソフトウェアエンジニアがプロジェクトに取り組んでいるものの、実行中のコンテナにアクセスできるのはチームメンバーのうち1人だけかもしれません。このような場合、チームメンバーはコードを共有し、リーダーは新しいコードをコンテナに取り込む必要があります。もちろん、リーダーはカットアンドペーストすることもできますが、新しいファイルをコマンド1つでコピーするだけで済むのでは?

これがどのように行われるかをお見せしましょう。

必要なもの

これを実行するには、実行中のDockerインスタンスとdockerグループのメンバーであるユーザーが必要です。これで完了です。コンテナを起動してみましょう。

NGINXのデプロイ方法

今回は、実績のあるNGINXコンテナを使ってこれをデモンストレーションします。なぜでしょうか?それは、このコピーコマンドの結果を確認する最も簡単な方法だからです。

まず、NGINXコンテナをデプロイしましょう。デタッチドモードでデプロイし、外部ポート8080と内部ポート80をリッスンします。コンテナ名はdocker-nginxとし、以下のコマンドでデプロイします。

docker run --name docker-nginx -p 8080:80 -d nginx

コンテナが起動したら、Webブラウザで http://SERVER:8080 にアクセスしてください(SERVERはコンテナホストのIPアドレス)。NGINXのウェルカムページが表示されます(図A)。

図A

実行中のコンテナによって表示される NGINX の Welcome ページ。

実行中のコンテナにファイルをコピーする方法

コンテナの新しいウェルカムページを作成しましょう。以下のコマンドでファイルを作成します。

nano index.html

そのファイルに次の内容を貼り付けます。

こんにちは、TechRepublic

ファイルを保存して閉じます。

これで、新しいインデックスファイルをコンテナにコピーできます。NGINX Dockerコンテナについて知っておくべきことは、ドキュメントルート(Webページが提供されるディレクトリ)が/usr/share/nginx/html(/var/www/htmlではなく)であるということです。これがコピー先です。ファイルをコピーするコマンドは次のとおりです。

docker cp FILE CONTAINER:DESTINATION

ここで、FILE はコピーするファイル名、CONTAINER は実行中のコンテナ名、DESTINATION は新しいファイルを格納するコンテナ内のディレクトリです。この例では、コマンドは以下のようになります。

docker cp index.html docker-ngxin:/usr/share/nginx/html

ファイルをコピーした後、ブラウザ ページを更新すると、ようこそページに「Hello, TechRepublic」と表示されます (図 B )。

図B

新しい NGINX ウェルカム ページが実行中のコンテナーにコピーされました。

同じコマンドを使ってディレクトリ全体をコピーすることもできます。例えば、「ecommerce」という新しいウェブサイトを作成し、それをNGINXのドキュメントルートにコピーしたいとします。同様のコマンドで実行できます。

docker cp ecommerce docker-nginx:/usr/share/nginx/html

上記のコマンドは、ディレクトリとそのすべての内容をコピーします。

ホストから実行中の Docker コンテナにファイルとフォルダをコピーする手順はこれだけです。

Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube でTechRepublic の How To Make Tech Work を購読してください。


画像: o_m/Shutterstock
Tagged: