surga Lab

読者です 読者をやめる 読者になる 読者になる

surga Lab

営業部でも開発したい!!

Raspberry Piにdocker-composeを入れてみました

正直はまりました。
めっちゃはまりました。

ただネットの海は素晴らしく、ひたすら泳いでたら素晴らしい先人がいらっしゃいました。

(始まりの文) I really like docker-compose

素晴らしいですね。

導入

www.berthon.eu

では、上記サイトを参考にDocker Composeを入れていきます。
とはいっても特別に調整などは不要なので、参考にというかほとんどそのまま打てば問題ありません。

まずはdocker-composeをcloneしてローカルへファイルを準備します。

$ git clone https://github.com/docker/compose.git

続いてARMへ対応するようにDockerfileの内容を置換していきます。

$ cd compose
$ cp -i Dockerfile Dockerfile.armhf
$ sed -i -e 's/^FROM debian\:/FROM armhf\/debian:/' Dockerfile.armhf
$ sed -i -e 's/x86_64/armel/g' Dockerfile.armhf

ビルドして走らせます。
結構時間がかかります。

$ docker build -t docker-compose:armhf -f Dockerfile.armhf .
$ docker run --rm --entrypoint="script/build/linux-entrypoint" -v $(pwd)/dist:/code/dist -v $(pwd)/.git:/code/.git "docker-compose:armhf"

dist以下ファイルをbinへ移動させ、コマンドで起動できるようにします。

$ ls -l dist/
$ sudo cp dist/docker-compose-Linux-armv7l /usr/local/bin/docker-compose
$ sudo chown root:root /usr/local/bin/docker-compose
$ sudo chmod 0755 /usr/local/bin/docker-compose

終了後、以下のようになれば成功です。

$ docker-compose version
docker-compose version 1.13.0dev, build ae2cc6b
docker-py version: 2.2.1
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.0.1t  3 May 2016

Raspberry PiにDockerを入れてみました

今まではCPUの違いから導入できなかったみたいですが、現在では公式にサポートされているようです。
また、hypriotがDocker同梱のOS(Raspbianベース?)を用意しているので、それを利用する方法もあります。

ただ今回は、標準のRaspbianへ後から導入します。OSの入れ直しが面倒だったので。

導入

公式ブログが一番わかりやすいと思います。

www.raspberrypi.org

どうやらコマンド1つで入るようです。

$curl -sSL https://get.docker.com | sh

以下を打つと非root状態でも利用できるようになります。
再ログインが必要です。

$sudo usermod -aG docker [username]

ラズパイのCPUはARMなので、ほとんどのdockerは動きません。

テスト

とりあえず確認としてhypriotのdockerを動かしてみます。
hypriotとはARM向けのDockerをいろいろ準備してくれているすごい団体です。(たぶん)
ドクロが怖いです。

このサイトを参照させていただきました。

hammmm.hatenablog.com

$docker run -d -p 80:80 hypriot/rpi-busybox-httpd

ラズパイのアドレスをPCで覗くとhypriotの画像が現れます。

http://192.168.xxx.xxx

f:id:hisurga:20170416224856p:plain

確認が終わったらpsで動作状況を確認し、stopで名前を指定して停止します。

$docker ps
$docker stop [NAME]

Raspberry Piにssh接続してみました

外部のPCなどから編集できるようにssh設定を行います。

固定IPアドレスの設定

rootに切り替えます。

sudo su -

以下ファイルを編集します。

/etc/dhcpcd.conf

最下部へ以下のように追記します。
設定はご自身のルータ設定によって変えてください。

static ip_address:ラズパイに設定したいアドレス
static routers:ルータのアドレス
static domain_name_servers:DNSサーバのアドレス

interface eth0
static ip_address=192.168.10.10/24
static routers=192.168.10.1
static domain_name_servers=192.168.10.1

再起動します。

reboot

以下コマンドでinetに書かれたアドレスが設定したアドレスになっているか確認します。

ifconfig

他のPCからpingを撃ってもいいかもしれません。

sshの有効化

この状態でsshを試みましたが、うまくいきませんでした。
どうやら最近では初期状態でsshが無効化されている? らしいのでsshファイルを作成します。

touch /boot/ssh

すでに作成されているのにsshできない場合は他がおかしいかもしれないです。

ラズパイを再起動してからmacのターミナルでsshを試みます。

ssh [ユーザ名]@xxx.xxx.xxx.xxx

(x = ipアドレス)

出てくる警告はyesでオッケーです。

完了

ログインできたら成功です。

あとはリモートで作業できますので、hdmiやキーボードは外しても大丈夫かと思います。

Raspberry Piでのスクリーンショットはscrotが便利です

ブログとかでスクリーンショットって良く撮ると思います。
ラズパイでも同様で、GUIで操作する時などスクショが欲しくなる時があります。

しかし、winやOS Xと違ってデフォルトではスクショ機能は入っていません。

Linuxで使えるスクショ用ソフトウェアはいろいろありますが、個人的に簡単なscrotがおすすめです。

以下コマンドでインストールです。

sudo apt-get install scrot

撮影方法はターミナルからscrotと打つだけです。

f:id:hisurga:20170416194418p:plain

すると以下ユーザディレクトリに保存されます。ファイルマネージャの初期場所ですね。

/home/username/

以下オプションでウインドウ指定で撮ることも可能です。
コマンド入力後に撮りたいウインドウをクリックです。

scrot -s

他の機能は-hのヘルプから見れます。(投げやり)

Raspberry Piを始めたので初期設定とかしてみました

買いました。ラズベリーパイ。

f:id:hisurga:20170416194420j:plain

f:id:hisurga:20170416194421j:plain

いっしょにいろいろな物も買いました。

f:id:hisurga:20170416194419j:plain

ラズパイを始めるのに必要な物

  • ラズベリーパイ

今なら3が一般的みたいです。

Raspberry Pi 3 MODEL B 【RS正規流通品】

Raspberry Pi 3 MODEL B 【RS正規流通品】

  • 電源

ACアダプタとmicroUSBで動作しますが、2.5A供給推奨なので足りなかったら適当に購入してください。

Raspberry Pi用電源セット(5V 3.0A)?Pi3フル負荷検証済

Raspberry Pi用電源セット(5V 3.0A)?Pi3フル負荷検証済

  • microSD

ラズパイのストレージです。大事です。
ハイスピードで謎メーカじゃない16GBのものであればいいと思います。

  • ケース

必要ではないですが、むき出しもいやなので。
あれば便利くらい。

f:id:hisurga:20170416194422j:plain

f:id:hisurga:20170416194423j:plain

Piケース Official for Pi3 (RED)

Piケース Official for Pi3 (RED)

初期設定

初期設定のようなすでに出回っている情報を私が新たに書く必要は、、、ないのでは?

ですので簡潔に紹介します。
大事なのはそれで何をするかですね。つまり面倒だっただけ

今回はNOOBSを利用してOSを書き込みます。

NOOBSをダウンロード

NOOBSを使うと非常に簡単にOSのインストールができます。

以下サイトからzip or torrentでダウンロードします。

LITEは軽いですが、OSが入ってないです。
Raspbianを利用するなら、結局後でラズパイ側からダウンロードが必要になるので通常版で。

www.raspberrypi.org

SDの準備

microSDをディスクユーティリティでフォーマットします。
ついでに名前も変えておきます。
windowsなら適当なソフトでフォーマットしてください。

f:id:hisurga:20170416194415p:plain

コピー

解凍したファイルをSDカードにコピーします。

f:id:hisurga:20170416194416p:plain

起動

先にキーボードとマウスと繋げておきましょう。
ネット回線は有線にて繋げました。
ちょっとゴチャゴチャしますね。

f:id:hisurga:20170416194424j:plain

電源を繋げると起動し、こんな画面になります。
ならなかったら何かがおかしいです。

f:id:hisurga:20170416194425j:plain

インストール

いろいろありますが、Raspbian with PIXELを選択してインストール
windows10 Iotとか結構気になるところ。

待つ。
長く待つ。

f:id:hisurga:20170416194426j:plain

終わると再起動し、GUIで表示されます。

f:id:hisurga:20170416194427j:plain

いろいろ設定

ユーザ

初期ユーザのpiのままでもいいですが、みんなが知っているユーザでセキュリティ的にも良くなさげなので新規ユーザで作り直しましょう。

1. ユーザの追加
# sudo adduser [newuser]

パスワードを二回入力し、後はエンター連打でオッケー。

2. グループに追加

groupsでpiのグループを確認します。

# groups pi
pi : pi,adm,.....,gpio

それを新規ユーザにも追加します。

sudo usermod -G pi,adm,.....,gpio [新しいユーザ]
3. 初期ユーザpiを削除

初期ユーザは不要になるので消します。
GUIモードだとcurrently used by processとなって消せない時があるので、simple consoleモードにしてから消しましょう。

以下コマンドから設定を開き、Boot Optionsでconsoleモード(自動ログインなし)を選択します。

# sudo raspi-config

再起動して新規ユーザにてログイン後、以下にて削除します。

sudo userdel -r pi

GUIを使わない人ならConsoleモードのままでいいですね。
戻すならまたraspi-configで。

emacs

ファイル編集用にemacsを入れておきます。
vimは使い方知らないです。

sudo apt-get install emacs

capslock

キーボードのcapsLockをCtrlに変えます。

下記ファイルを

/etc/default/keyboard

こうします。

XKBOPTIONS="ctrl:nocaps"

アップデート

後はソフトウェアのアップデートしておきましょう。

sudo apt-get update
sudo apt-get upgrade

以上

これで何かをやる準備はできましたね。