本記事では、Linux UbuntuでDockerを用いて仮想イメージを作成する手順を詳しく解説します。Dockerは、コンテナ技術を用いた仮想化プラットフォームであり、開発やテスト環境を容易に作成・管理できます。この記事を読むことで、仮想イメージ作成の基本から実際の操作方法までを学び、実践に役立てることができます。
本記事の読者層は以下の方を想定しています。
- Dockerの基本を学び、初めて仮想環境を構築する人。
- 開発環境やテスト環境の効率化を図りたい担当者。
- 仮想環境の構築と自動化に興味があり、既存のシステムを改善したい人。
Dockerとは?
Dockerは、コンテナ技術を利用して仮想化されたアプリケーション環境を提供するプラットフォームです。従来の仮想マシン(VM)とは異なり、DockerコンテナはホストOSのカーネルを共有するため、軽量であり、迅速に起動できます。また、異なる環境での動作が容易に再現可能で、アプリケーションの依存関係や設定を簡単に管理できます。Linux環境での開発やテスト、デプロイに非常に適しており、特にクラウド環境での利用が急速に拡大しています。
Dockerイメージとは?
Dockerイメージは、コンテナを構成するすべてのファイルや設定情報を含むテンプレートです。このイメージを元にコンテナを作成し、特定のアプリケーションやサービスを実行します。Docker Hubには、さまざまなイメージが公開されており、これらをダウンロードして使用することができます。
Dockerのインストール
まず、DockerがUbuntuにインストールされているかを確認しましょう。まだインストールしていない場合は、以下の手順に従ってください。
sudo apt-get update
sudo apt-get install docker.io
sudo systemctl start docker
sudo systemctl enable docker
このコマンドにより、UbuntuにDockerがインストールされ、サービスが自動的に開始および有効化されます。インストールが完了したら、次のコマンドを使ってDockerが正しくインストールされているか確認します。
docker --version
これでDockerがインストールされていることが確認できました。
UbuntuのDocker でimageを構築する方法
過去の記事で仮想環境プラットフォーム「Docker」でApatch2が既に構築済みであることにする。
使用環境
- ホスト環境:Dockerの環境 Docker (Ubuntu 18.04 LTS)
サーバー: httpd (アクセス先:https://servername:8081) - Apache/2.4.54 (Unix) (Dec.21 2022)
Apache2サーバーのDockerイメージを作成する手順
Step 1:apache2のイメージのダウンロード
まず、公式Docker HubからApache2サーバー(httpd)のイメージを取得します。次のコマンドを実行してください。
#サーバー1用
$ sudo docker pull httpd
Uこれにより、Docker HubからApache2の最新バージョンがダウンロードされます。ダウンロードが完了したら、以下のコマンドを使用して、イメージが正しく取得されたことを確認します。
$ sudo docker images
ここで「httpd」というイメージが表示されていれば、ダウンロードは成功です。
Step 2: Apache2コンテナの起動
次に、Apache2のコンテナを起動します。以下のコマンドを実行して、コンテナをバックグラウンドで起動し、ポート8081を開放します。
$ sudo docker run -d -p 8081:80 httpd
コンテナが正常に起動すると、コンテナIDが表示されます。ブラウザで「http://localhost:8081」にアクセスすると、Apache2のデフォルトページが表示されるはずです。
Step 3: コンテナの状態確認
コンテナが正常に起動しているか確認するため、次のコマンドを実行します。
sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ea89699bc8e3 httpd "httpd-foreground" 16 minutes ago Up 16 minutes 0.0.0.0:8081->80/tcp, :::8081->80/tcp apache2
これにより、現在起動中のコンテナのリストが表示されます。リスト内に「httpd」コンテナが表示され、ポート8081が正しくマッピングされていれば、コンテナは正常に動作しています。
コンテナのコピー(commit)方法
Dockerでは、既存のコンテナから新しいイメージを作成することができます。これにより、設定済みの環境を保存し、後で再利用することが可能です。ここでは、起動中のApache2コンテナをコピーし、新しいイメージ「ext_httpd」を作成する手順を紹介します。
Step 1: 現在のコンテナの確認
まず、起動中のApache2コンテナIDを確認します。先ほどの「docker ps」コマンドを再度実行し、コンテナIDをメモしておきます。
sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ea89699bc8e3 httpd "httpd-foreground" 16 minutes ago Up 16 minutes 0.0.0.0:8081->80/tcp, :::8081->80/tcp apache2
例えば、以下のような結果が表示されたとします。の「CONTAINER ID」列の値が必要です。上記の場合、コンテナIDは「ea89699bc8e3」です。
Step 2: コンテナのコピー
次に、このコンテナを基に新しいイメージを作成します。以下のコマンドを実行してください。
ea89699bc8e3 →ext_httpdを作成します。
sudo docker commit ea89699bc8e3 ext_httpd
sha256:efccea2c4eb1aa04fe9033fec15756102439bd5c09d8d9d85ca636047b1e92be
このコマンドにより、現在のコンテナ「ea89699bc8e3」を基に「ext_httpd」という新しいイメージが作成されます。成功すると、イメージIDが表示されます。
Step 3: イメージの確認
新しいイメージが作成されたか確認するため、次のコマンドを実行します。
sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ext_httpd latest efccea2c4eb1 2 minutes ago 145MB
wordpress latest 9ded7abe41a3 8 days ago 615MB
httpd latest 73c10eb9266e 8 days ago 145MB
mysql 5.7 d410f4167eea 3 weeks ago 495MB
mysql latest 7484689f290f 3 weeks ago 538MB
Dockerのリストを確認すると,出力には、先ほど作成した「ext_httpd」という名前のイメージが表示されるはずです。
コンテナの保存と再利用
作成したイメージ「ext_httpd」は、他のマシンやチームメンバーと共有することが可能です。これにより、同じ環境を再現する手間を省き、開発効率が向上します。
Dockerイメージの保存
ローカルに保存したイメージをアーカイブ化するには、以下のコマンドを使用します。
sudo docker save -o ext_httpd.tar ext_httpd
このコマンドにより、「ext_httpd」というイメージが「ext_httpd.tar」というファイルに保存されます。このファイルを他のマシンに移動させて使用できます。
Dockerイメージの再インポート
保存したイメージを別の環境で再利用するには、次のコマンドを使用します。
sudo docker load -i ext_httpd.tar
これにより、「ext_httpd」イメージが再びDockerにインポートされ、コンテナとして使用可能になります。
まとめ
本記事では、Linux UbuntuのDocker環境でApache2サーバーの仮想イメージを作成し、コンテナを基に新しいイメージを作成する手順を解説しました。この技術は、開発やテスト環境の効率化に非常に役立ちます。Dockerを活用することで、複数の環境を簡単に構築し、チーム全体で共有することが可能です。
次回の記事をご期待下さい。どうぞよろしくお願いいたします。
コメント