Dockerを使用したLinux Ubuntuでの仮想イメージ作成方法

DOCKER
この記事は < 1 分で読めます。
概要

本記事では、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にインポートされ、コンテナとして使用可能になります。

まとめ

本記事のまとめ

次回の記事をご期待下さい。どうぞよろしくお願いいたします。

関連リンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次