- 2024年9月5日
- 2024年9月5日
Dockerとコンテナ技術 その13:ボリューム
ボリュームとは、Docker上に作成できる永続的なデータ領域です。 コンテナ上のデータはコンテナを削除すると消えてしまいますが、ボリューム上にデータを保持することで永続化させることができます。 ボリュームは複数のコンテナからアクセスすることができ、外付けHDDのような役割を果たします。
ボリュームとは、Docker上に作成できる永続的なデータ領域です。 コンテナ上のデータはコンテナを削除すると消えてしまいますが、ボリューム上にデータを保持することで永続化させることができます。 ボリュームは複数のコンテナからアクセスすることができ、外付けHDDのような役割を果たします。
今回の記事ではDockerイメージを効率的に作成するためのテクニックであるマルチステージビルドについてまとめていきます。 マルチステージビルドをすることで、効率的なビルドやビルドイメージの軽量化、セキュリティリスクの軽減などの効果が期待できます。 マルチステージビルドとは、通常、1つのイメージのみで構築するDockerfileの中に複数のイメージを利用して構築する手法です。この時の一つ一つのイメージのことをステージといいます。 各ステージでは別のイメージを利用することができ、ビルド時のみに必要なコンパイラなどを分けることができます。 このようにステージ毎に必要なイメージを分けることで、最終的に必要なものだけを最終イメージに含めることができ、イメージの容量の軽量化や効率的なビルドを実現することができます。
今回はDockerのイメージのビルドにおいて覚えておくべき概念であるビルドコンテキストと、.dockerignoreという設定ファイルについてまとめていきます。 ビルドコンテキストとは、Dockerがイメージをビルドする際にクライアントから渡されるファイル群のことです。 .dockerignoreは設定ファイルの一つで、ビルドコンテキストから除外するファイルやフォルダを指定することができます。
今回は前回の記事に続いて、Dockerfileについてまとめていきたいと思います。 Dockerfileはカスタムイメージを定義するファイルですが、基本的に以下のような構造になっています。 大文字のコマンド [パラメータ...] 例えば、前回の記事の例で実際に記述したFROM ubuntu:20.04は、FROMという大文字のコマンドにubuntu:20.04というパラメータを指定しています。 このようなコマンドを記述していくことでカスタムイメージを作成していくのが基本となっています。
Dockerコンテナはレジストリから用途に合ったイメージを取得して作成する方法の他に、自分でカスタムしたイメージから作成することもできます。 実務においては、レジストリ上のイメージのみではほとんど対応できないため、自分の要件に合ったイメージを作成する必要があります。 今回は2つの記事に分けて、Dockerfileと呼ばれるイメージを定義するファイルを利用してカスタムイメージを作成する方法についてまとめていきます。 Dockerfileとは、イメージを定義する時に利用されるファイルです。
コンテナは一つのシステム内で、その用途ごとに分けて複数作成するのが一般的です。 例えばWebサーバーのコンテナとDBサーバーのコンテナを作成する、といった感じです。 コンテナは独立した仮想環境であるため、ネットワークで繋ぐ必要があります。 今回の記事では、コンテナの周りのネットワークについてまとめていきます。
コンテナは作成し利用した後は都度削除するのが一般的です。 しかし、コンテナを削除するとその中のデータも削除されてしまいます。 そのため、削除したくないデータがある場合はデータの永続化を行う必要があります。 Dockerではデータの永続化として2つの方法が用意されています。 ボリュームとバインドマウントです。
コンテナの仮想環境が作成できるようになったので、次は起動しているコンテナでの操作を実行できるようにしていきます。 今回はコマンド実行による操作方法をいくつかまとめていきます。 コンテナとホストOSの間でのファイルのやり取り ・docker compose cpコマンドを利用する。 ・ホストOSとコンテナ内のそれぞれのファイルパスを指定してコピーを行う。 コンテナ上でコマンド実行 ・docker compose exec [コンテナ名] [実行コマンド]でコマンドを単発で実行できる。 ・docker compose exec -it [コンテナ名] [立ち上げるシェル]でコンテナ上のシェルを立ち上げることができる。
Docker Composeで利用するキーや階層構造の主な記述方法についてまとめていきます。 Docker Composeで利用するcompose.yamlファイル内では、最上位で操作対象の指定をします。 これはコマンドで言うところの、dockerの後に指定するcontainerやnetworkなどの部分に近いイメージです。
Docker Composeとは、一度に複数のコンテナを作成・実行できるソフトウェアのことです。 Docker内に同梱されており、Dockerをインストールしていればそのまま利用することができます。 Docker ComposeではYAML形式の設定ファイルに詳細なオプションを記述し、それを基にコンテナの作成・実行を行います。 この設定ファイルには複数コンテナの作成やネットワークなどのコンテナの動作に必要な機能を記述することができるため、複雑な設定や構成も管理することができ、開発環境の統一やテストなどをより簡単に行うことができます。 Docker Composeはdocker composeコマンドを使って操作していきます。