Dockerは、Linuxオペレーティングシステム(Dockerホスト)上で軽量のLinuxコンテナーを実行するために使用されるLinux用のコンテナー化システムです。 Raspberry Pi 4にDockerをインストールするには、次のものが必要です。
- Raspberry Pi4シングルボードコンピューター
- Raspberry Pi 4Type-C電源。
- Raspberry Pi OSイメージがインストールされたmicroSDカード(少なくとも32GB)。
- Raspberry Pi4でのインターネット接続。
- Raspberry Pi4へのVNCリモートデスクトップアクセスまたはSSHアクセス用のラップトップまたはデスクトップ。
ノート: SSHまたはVNCを介してRaspberryPi 4にリモートでアクセスしたくない場合は、モニター、キーボード、およびマウスをRaspberryPiに接続する必要があります。ここでは、ヘッドレスRaspberry Pi4セットアップを使用してVNCリモートデスクトッププロトコルを介してRaspberryPi 4にリモート接続するため、周辺機器をRaspberryPiに接続しません。
追加リソース: Raspberry Pi4にRaspberryPi OSをインストールする方法については、こちらをご覧ください。 Raspberry Pi4にRaspberryPiOSをインストールする方法 。 Raspberry PiOSイメージをmicroSDカードにフラッシュする方法を学習します。ここに行く:Raspberry PiImagerをインストールして使用する方法。 Raspberry Pi 4のヘッドレスセットアップの詳細については、こちらをご覧ください:外部モニターなしでRaspberry Pi4にRaspberryPiOSをインストールして構成する方法。
Raspberry PiOSの更新
Dockerをインストールする前に、Raspberry PiOS上のすべてのパッケージを更新する必要があります。これを行うには、最初に次のコマンドを使用してAPTパッケージリポジトリキャッシュを更新します。
$sudoaptアップデート
このコマンドは、APTパッケージリポジトリキャッシュを更新する必要があります。
Raspberry Pi OSのすべてのパッケージを更新するには、次のコマンドを実行します。
$sudoaptアップグレード
アップグレードを確認するには、を押します と その後 。
APTパッケージマネージャーは、必要なすべてのパッケージをインターネットからダウンロードする必要があります。この手順は、完了するまでに時間がかかる場合があります。
必要なパッケージがすべてダウンロードされたら、APTパッケージマネージャーはそれらを1つずつインストールする必要があります。この手順は、完了するまでに時間がかかる場合もあります。
この時点で、既存のすべてのパッケージを更新する必要があります。
変更を有効にするには、次のコマンドを使用してRaspberry Pi4を再起動します。
Raspberry PiOSへのDockerのインストール
DockerがRaspberryPi OSを正式にサポートするようになったため、Raspberry PiOSを実行しているRaspberryPi4にDockerをインストールするのは非常に簡単です。
Raspberry Pi OSにDockerをインストールするには、Raspberry Pi 4にDockerインストールスクリプトをダウンロードする必要があります。次のコマンドを使用して、Raspberry Pi4にDockerインストールスクリプトをダウンロードできます。
$カール-fsSLhttps://get.docker.com-またget-docker.sh
Dockerインストールスクリプト get-docker.sh 現在の作業ディレクトリにダウンロードする必要があります。
Dockerインストールスクリプトを実行します get-docker.sh 次のコマンドでrootとして:
Dockerインストールスクリプトは、インターネットから必要なすべてのパッケージをダウンロードしてインストールします。この手順は、完了するまでに時間がかかる場合があります。
この時点で、Dockerをインストールする必要があります。
Dockerをインストールしたら、ログインユーザーをに追加します。 docker 次のコマンドでグループ化します。
変更を有効にするには、次のコマンドを使用してRaspberry Pi4を再起動します。
Raspberry Pi 4が起動したら、次のコマンドを実行して、dockerがインストールされているかどうかを確認します。
ご覧のとおり、私はDockerバージョン19.03.13を実行しています。これは、執筆時点でRaspberry PiOSで利用可能なDockerの最新バージョンです。この記事を読むまでに、バージョン番号が変更される可能性があります。
Raspberry PiOSへのDockerComposeのインストール
DockerCompose YAMLファイルを使用してDockerプロジェクトを自動化するためのツールです。
Dockerを使用してPHPWeb開発を行いたいとします。そのためには、Webサーバーなどの複数のコンテナーが必要です(つまり、 php )コンテナとデータベースサーバー(つまり、 mysql また モンゴ ) 容器。 RAW Dockerを使用する場合は、これらのコンテナーを個別に開始、停止、および構成する必要があり、これは面倒で時間がかかります。対照的に、Docker Composeを使用する場合は、単純なYAMLファイルとDockerComposeコマンドを使用してすべてのコンテナーを管理および構成できます。
Pythonのpipパッケージインストーラーを使用してDockerComposeをインストールできます。 PythonpipはRaspberryPiにプレインストールされている必要がありますが、pipがインストールされていない場合は、次のコマンドを使用してRaspberry PiOSの公式パッケージリポジトリからインストールできます。
$sudoaptインストールpython3-pip-と
私たちの場合、Pythonpipはすでにインストールされています。
Python pipをインストールしたら、次のコマンドを使用してDockerComposeをインストールできます。
以下のイメージでは、DockerComposeがインストールされています。
次のイメージでは、DockerComposeがインストールされている必要があります。
Docker Composeをインストールしたら、次のコマンドでアクセスできるかどうかを確認します。
ご覧のとおり、DockerComposeバージョン1.27.4を使用しています。この記事を読むまでに、Raspberry PiOSにDockerComposeの新しいバージョンがインストールされている可能性があります。
Raspberry Pi4でのDockerの使用
このセクションでは、Raspberry Pi 4でDockerを使用する方法を示します。Dockerを使用したことがない場合は、このセクションが開始に役立ちます。
Dockerコンテナーを実行するには、DockerコンテナーのベースとなるDockerイメージが必要です。 Dockerコンテナレジストリ(Docker Hub)には、何千ものDockerコンテナがあります。 Dockerコンテナー(Apache Webサーバーコンテナーなど)は、次のように検索できます。
$docker searchapache
検索クエリに一致するDockerコンテナが返されます。
公式のApacheWebサーバーコンテナは httpd 、下のスクリーンショットに示すように。そのイメージに基づいてDockerコンテナを作成しましょう。
を使用してApacheWebサーバーのDockerコンテナを作成して起動するには httpd Dockerイメージ、次のコマンドを実行します。
ノート: ここ、 -p 8080:80 ポートを転送するために使用されます 80 の httpd 移植するDockerコンテナ 8080 Dockerホスト(Raspberry Pi 4)で。
NS httpd Dockerイメージはインターネット(Docker Hub)からダウンロードする必要があります。この手順は、完了するまでに時間がかかる場合があります。
この時点で、Docker httpd コンテナイメージがダウンロードされ、新しいDockerコンテナが作成されているはずです。
Raspberry Pi 4でWebブラウザーを開き、http:// localhost:8080にアクセスすると、ApacheWebサーバーコンテナーが正しく実行されていることを示す次のWebページが表示されます。
次のコマンドを使用して、実行中のすべてのDockerコンテナーを一覧表示できます。
現在、実行中のDockerコンテナは1つだけです。つまり、ApacheWebサーバーコンテナです。コンテナの名前は awesome_grothendieck (ランダムに生成)、およびID c5d09470a9eb 。
作成したDockerコンテナーにはランダムに生成された名前が付けられますが、Dockerコンテナーには次の名前を付けることができます。 -名前 コマンドライン引数。たとえば、別のものを作成するには httpd 名前のDockerコンテナ webserver2 、次のコマンドを実行できます。
上記のコマンドを入力すると、 webserver2 作成する必要があります。
ご覧のとおり、新しく作成されたDockerコンテナの名前は webserver2 。
2番目のコンテナで実行されているWebサーバー webserver2 URL http:// localhost:8081からもアクセスできる必要があります。
実行中のコンテナーの名前またはIDを使用して、実行中のDockerコンテナーを停止できます。たとえば、実行中のDockerコンテナを停止するには webserver2 、次のコマンドを実行します。
Dockerコンテナ webserver2 停止する必要があります。
ご覧のとおり、で実行されていたWebサーバーは webserver2 コンテナも停止しました。
コンテナを停止できます c5d09470a9eb 次のコマンドを使用します。
次の画像に示すように、Dockerコンテナ c5d09470a9eb は実行されていません。
以下の画像は、で実行されていたWebサーバーが c5d09470a9eb コンテナも停止しました。
Raspberry Pi4でのDockerComposeの使用
このセクションでは、DockerComposeを使用してDockerプロジェクトを管理する方法を示します。
まず、新しいプロジェクトディレクトリを作成します 〜/ webserver 次のように:
$mkdir -v〜/ウェブサーバー
に移動します 〜/ webserver 次のようなディレクトリ:
新しいファイルを作成する docker-compose.yaml 次のように:
docker-compose.yamlファイルに次のテキストを入力します。
サービス:
ウェブ:
画像:httpd:latest
再起動:常に
ボリューム:
-。/www:/usr/ローカル/apache2/htdocs
ポート:
-'8083:80'
ノート: 必ず適切なインデントを使用してください。インデントはYAMLファイルにとって非常に重要です。インデントが正しくないと、構文エラーが発生します。
完了したら、を押します + X 続いてYと 保存するには docker-compose.yaml ファイル。
ここで、 サービス セクションでは、の定義があります ウェブ Dockerコンテナ。
4行目では、Docker 画像 その ウェブ 使用するコンテナを定義する必要があります。ここでは、 画像 使用するのは httpd:latest
5行目 再起動:常に 予期せず停止した場合にWebコンテナを再起動するために使用されます。
6〜7行目はマウントに使用されます www / プロジェクトディレクトリのディレクトリ / usr / local / apache2 / htdocs 、つまり、コンテナのウェブルート。
8〜9行目はポートの転送に使用されます 80 コンテナのポートへの 8083 Dockerホスト(Raspberry Pi 4)の
新しいディレクトリを作成します www / 次のようにプロジェクトディレクトリにあります。
新しいファイルを作成する index.html の中に www / 次のようなディレクトリ:
次のコマンドを入力して、を押します + X に続く と と ファイルを保存します。
次のコマンドを使用して、DockerComposeプロジェクトを開始できます。
DockerComposeプロジェクトが稼働している必要があります。
ご覧のとおり、Webサーバーコンテナが実行されています。
WebブラウザからURLhttp:// localhost:8083にアクセスすると、次のページが表示されます。これは、DockerComposeプロジェクトが機能していることを意味します。
Docker Composeプロジェクトを停止する(つまり、プロジェクトのすべてのコンテナーを停止する)には、次のコマンドを実行します。
DockerComposeプロジェクトは停止しているはずです。
ご覧のとおり、コンテナは実行されていません。
また、Webサーバーにアクセスできません。
結論
この記事では、DockerとDockerComposeをRaspberryPi 4にインストールしました。さらに、DockerとDockerComposeを使用してDockerコンテナーを作成します。この記事は、Raspberry Pi4でDockerとDockerComposeを使い始めるのに役立ちます。