RaspberryPi

RaspberryPi2でDockerを動かしてみた

つい最近、お仕事でDockerに触る機会があったのですが、いざ触ってみると面白いということで、さっそく自宅でも動かしてみました。

Dockerはホスト自体が仮想環境だと動かすことができないそうなので、今回は手持ちのRaspberryPi2をホストとして試してみたいと思います。

Dockerって何?

まずDockerって何?という話ですが、一言で言うと仮想化環境の1つです。仮想化といえば、VirtualBoxやVMWareが有名ですが、Dockerはこれらと少し毛色が違います。

VirtualBoxやVMWareは、PCのハードウェアすべてを仮想化することでアプリケーションを実行するため、何でもかんでも仮想化するために多くのリソースを割きます。

一方、Dockerは「コンテナ」と呼ばれる一種のプロセスとしてアプリケーションを実行するので、リソースは少なくて済みます。また、コンテナ内の環境はその中に閉じているので、Docker内のアプリケーションはあたかも別PCの中で動いているように見える、ということらしいです。

ざっくりとはこんな感じですが、こちらのページの解説が図解付きでとってもわかりやすいです。

Docker環境のインストール

まずはラズパイ上にDocker環境を作ります。ホストがラズパイの場合は「docker-hypriot」というものを使う必要があるようです。

デフォルトでは提供されていないパッケージなので、手動でリポジトリの追加をした上でインストールします。

インストールが出来たら、Dockerのサービスを起動します。これで、Docker環境自体は準備完了です。

Dockerイメージのダウンロード

Dockerのサービスが起動できたら、次はその上で動かす仮想環境のイメージ(Dockerイメージ)が必要になります。

Dockerイメージは自分で作ることもできますが、今回はまず動かすことが目的なので、先人が作ってくれたイメージを使います。Dockerにはイメージを配布する公式リポジトリがあり、そこからイメージをダウンロードできます。

busyboxなどのアプリケーションからOSそのものまで、様々なイメージが提供されていますが、ラズパイ用のイメージはまだまだ少ないようです。

そのなかでも、今回はWebサーバーの1つ「nginx」のイメージを使ってみることにします。以下のコマンドでイメージをpullしてきます。

Dockerコンテナの起動

イメージの用意ができたら、コンテナを起動してみます。

まずは事前準備としてtobi312/rpi-nginxのコンテナに必要なファイルをホスト上に用意してあげます。

次に、「docker run」コマンドでコンテナを起動します。

ここでは、80番と443番ポートをポートフォワーディングして、先ほど作成したファイルをコンテナ内にマウントしています。そのため、コンテナ内でnginxが動いていれば、ラズパイ本体の80/443番ポートへのアクセスでページが表示されるはずです。

ちゃんと作成したhtmlが表示されていますね。なんとかラズパイ上でDockerを動かすことができました。

Docker自体に慣れれば、いろんな環境をお手軽に構築できるのでかなり便利そうです。これからも色々と遊んでみたいと思います。

ではではノシ

参考ページ

以下のページを参考にさせていただきました。

関連記事

Linux

2019/10/6

Docker + Growiでイントラ向けWikiを立ち上げる

チーム開発をしていくうえで、課題の1つになるのが情報共有です。チームの歴史が長いと経験値は溜まっていきますが、それらが情報として整理されていないとメンバー交代時などに大きなコストが発生します。 そこで、イントラ向けのナレッジベース(Wiki)を探していたところ、Growiという良さげなOSSを見つけたので、お試し環境を立ち上げてみることにしました。手元の環境はUbuntu18.04ですが、Linuxであれば大体同じような手順になると思います。 目次1 Dockerのインストール2 Growiの準備2.1 ...

この記事を読む

Linux

2019/8/14

カゴヤVPSで自分専用の開発環境を立ち上げてみた

どこからでもアクセスできる自分専用の開発環境が欲しい…。 そんな願いを叶えるべく、VPSのことを調べていたのですが、いままで「なんか難しそう…」と尻込みしていました。しかし、最近は値段も安くて扱いやすいVPSも増えてきたので、この機会に試してみることにしました。 ということで、今回はVPSを契約して最低限の環境を立ち上げるまでの備忘録です。 目次1 VPSについて1.1 VPSって何?1.2 カゴヤのVPSを契約してみた2 手順1:インスタンスを立ち上げる3 手順2:インスタンスにSSH接続する4 手順3 ...

この記事を読む

Windows

2019/5/5

Windows10で不要なブートエントリを削除する

Windowsのブートまわりで少しハマったので覚え書きです。 私のメインPCはWindows10とUbuntuのデュアルブートだったのですが、とある事情でUbuntuを削除しWindowsのみの構成に戻すことにしました。ちなみに、デュアルブート時の環境はこんな感じ(だったはず)。 元に戻したくなったときのことを考え、別HDD(ドライブB)にUbuntuとGRUBを入れ、GRUB経由でWindowsとUbuntuを立ち上げる形にしていました。 そのため、起動ドライブをWindowsのドライブ(ドライブA)に ...

この記事を読む

C言語 プログラミング

2018/12/25

mmapの下処理にftruncate関数を利用する

以前このブログで公開した記事の中に、C言語のmmap関数の使い方についてまとめた記事がありました。 Corgi Lab. ~備忘録のための技術ブログ~  3 shares 3 users 4 pocketsファイルの読み書きにmmapを使ってみるプログラムのループ中でファイルに何かしらのデータを書き込むとき、そのたびにwriteをしていたのではディスクへのI/Oが頻発してしまい、パフォーマンスに影響することがあります。「C言語だとそんなときはmmapを使うと良い」と ...

この記事を読む

Mac Linux

2018/12/2

Mac mini (2012) にUbuntu18.04をインストールしてみた

今年のアップデートにより、ついに旧型となってしまったMac mini(2012年モデル)。私の自宅にも箱に収められたままひっそりと眠るMac miniがありました。 約6年前のモデルと言うことで、最近のマシンから見ればスペック的に見劣りするPCになってしまいましたが、Linux機として運用するならまだまだ輝けるはず! ということで、今回はMac miniをUbuntu専用マシンとして復活させてみたので、その備忘録です。 目次1 用意するもの2 Ubuntuのインストール3 インストール後のセットアップ3. ...

この記事を読む

-RaspberryPi

Copyright© Corgi Lab. ~備忘録のための技術ブログ~ , 2019 All Rights Reserved.