3のCPUは64bit(arm64)対応ですが、Raspbian等のOSイメージで起動すると32bitのarmv7互換モードで動作します。以前からRaspi3をarm64で利用したいと思っていたのですが、下記のハンズオン記事を見つけ、紹介されている手順を試してみたところ、Raspi3をarm64で起動してdockerを利用できるようになりました。OSの構築方法が解説されており、手順に従って作業することで、docker導入済みのarm64で起動するOSイメージを構築できます(が、かなり時間がかかります)。利用における補足事項を解説します。実際に導入した手順を紹介します。ダウンロードできます。OSイメージをダウンロードして展開します。microSDのデバイス名を確認macにmicroSDを挿入し、接続されているデバイス名を確認します。して認識されていることが分かります。microSDをアンマウントmicroSDにイメージを書き込むための準備として、microSDをアンマウントします。successfulアンマウントしてもmicroSDはmacに挿したままにしておきます。コマンドで書き込みます。書き込み先のmicroSDのデバイス名を指定します。イメージを書き込む際のブロックサイズを指定しています。手順2で確認した各自のデバイス名に読み替えて実行してください。bs=1m書き込みが終わったあとに再度microSDをアンマウントし取り外します。OSの起動OSイメージを書き込んだmicroSDをRaspi3に差し込んで起動します。有線LANに接続しておけばDHCPで自動的にIPアドレスを取得します。nmapコマンドやルータの設定画面等からRaspi3に割り当てられたIPアドレスを確認してsshでログインします。ログイン後にパスワードを変更しておきましょう。ログインすると、以下のように、arm64で起動しており、debian-jessieベースであることが確認できます。600MHz動作)になっており、本来の性能を活かしていない状態になっています。/sys/devices/system/cpu/cpu0/cpufreq/scaling_governorondemandこの場合はCPU負荷に応じて周波数が600MHzから1.2GHzに変動するようになります。等あり、ざっくりと以下のような動作をします。trueこのまま使っても問題ないですが、最新のdocker-ceに更新する手順も以下に解説します。arm64用のdocker-ceはaptでインストールできないため、ソースからビルドしdebパッケージを作成してインストールします。構築済みのdebパッケージを以下からダウンロードできるようにしておきました。パッケージも作成しました。arm64こちらをダウンロードして、以降のパッケージインストール手順から実行することもできます。debian-jessie向けのビルド用Dockerfileを手動で追加した後に、ソースのビルドとdebパッケージ作成を行います。いうファイルを以下の内容で作成します。残念な事に、メモリ1GBのRaspi3でdocker-ceのdebパッケージを作成しようとするとメモリ不足によるエラーで失敗します。今回解説した手順で起動したRaspi3はswapパーティションがないため、手動で1GBのswap用のファイルを作成してswap領域として有効化します。/swapfileこの手順では、システム再起動後にはswap領域は無効となります。作業後にスワップ用ファイルが不要であればswap領域を無効化してファイル削除してかまいません。ソースのビルドとdebパッケージ作成ここまで準備できたら、makeでdebパッケージの作成まで自動で行えます。dockerのビルドにはdockerを使うのですが、今回の環境ではdocker(v1.13.1)が最初から入っているためビルドできます。DOCKER_BUILD_PKGS=debian-jessiearm64化したRaspi3上でのビルドとパッケージ作成に45分程度かかります。いう名前で保存されています。trueちなみに、これまで、dockerはCPUアーキテクチャに応じたdockerイメージを利用者側が考慮してpullして利用する必要がありましたが、2017年9月中旬からマルチアーキテクチャに対応しました。等を実行した場合に、これまではx86_64向けバイナリのdockerイメージがダウンロードされていたのですが、今回構築したarm64のdocker環境でpullすると、自動的にarm64バイナリのhello-worldやredisのdockerイメージがダウンロードされることが確認できます。マルチアーキテクチャの対応は現状では以下のような状況のようです。アプリケーションはWordPress、Ghost、Redmineなど12345ベースとなるOSはUbuntu、BusyBox、Debianプログラミング言語とランタイムはGo、Python、JavaデータベースはPostgreSQL、Neo4j、RedisアプリケーションはWordPress、Ghost、Redmineなどその他Wi-FiやBluetoothやGPIO周りの動作について今のところ、有線LAN接続でarm64のdockerホストとしてRaspi3を利用しているのみで、Wi-FiやBluetoothやGPIO周りの動作については未確認です。OSのディスク領域の拡張について今回利用したOSイメージは初回起動時にmicroSDの容量に応じてディスク領域が自動的に拡張されるため、手動での拡張する等の対応は特に必要ありません。(DietPi)Dockerが提供するオフィシャルイメージがマルチアーキテクチャ対応に。knjcode関連記事gitでの作業内容を別ブランチに移動したいgitを使っていて、コードの編集がある程度進んだ後に別ブランチで作業しておけばよかったと思う時があります。記事を読むNode.jsでmecab-unidic-NEologdを使う最近、ボットに漢字を含む日本語の「読み」を解析させて遊んでいます。前回の記事でmecab-ipadic-NEologdを使いましたが、今...記事を読むhubotからRedisにアクセスするhubot経由でRedisへの簡易なアクセスを可能にするhubot-scriptを書きましたので、誰か使う人がいるかもと思いご紹介します。hubotから...記事を読むhubotで日本語の読みがなを解析する(gooラボのひらがな化API編)gooラボのひらがな化APIを利用して、hubotで日本語の読みがなを取得してみました。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。コメントデータの処理方法の詳細はこちらをご覧ください。