RaspberryPiでもDockerしたい!

最近、Dockerを使用するようになってPCの側でアプリ(特にサーバー系)をインストールしたりセットアップするのが億劫になってきました。私用で使っているRaspberryPiに関しても同様なのですが流石に1GBメモリのRaspberryPiDockerを使用するのはちょっと無謀かなと思ってもいます。ちょうど2GBメモリのRaspberryPi4があるので、そちらにDockerを使った場合、どの程度使用に耐えるのか、コンテナを起動した際にどの程度メモリ消費量あるの調べてみようと思います。あくまでもヘビーユースではなく、ホビーユースという側面で見ていただければと思います。

使用した環境

使用したは以下のような環境です。

  • RaspberryPi → RaspberryPi 4B(メモリ2G モデル…このあたりがギリギリかな)
  • OS → RaspberryPi OS Lite bullseyeベース(64bit)
  • ブート → SDカード

としています。今回は新規にインストールを行って余計なノイズが入らないようにしています。また、X Window Systemを使用するのが持ったいないのでLite版を使用しています。

SDカードから起動後にOSの状態を確認しました。(lsb_releaseコマンドunameコマンドを使用)

また、起動直後のメモリの空き状態は以下のようになっています。表示の単位はメガバイト(-mオプション)にしています。

初期状態では1.7GBほどの空きメモリがあるようです。

続きを読む

Dockerのコンテナ間のネットワーク通信

Dockerのコンテナ間の通信をできないかなと思って調べてみました。今まではコンテナにDBとWebサーバを共存させるようなことをやっていたのですが、 実際には別のサーバになることも多いので、この際調べて変更をしていこうと思います。

今回のテスト環境

今回は以下の環境でテストを行っています。

  • Windows10 Home
  • WSL2環境のDocker
  • コンテナイメージUbuntu : latest

コンテナの生成・実行

実験の対象となるコンテナを以下の様に生成実行しました。

PS C:\> docker run -itd -v /c/sharebin:/sharebin --name myubuntu1 ubuntu
PS C:\> docker run -itd -v /c/sharebin:/sharebin --name myubuntu2 ubuntu

このコンテナの名前はmyubuntu1myubuntu2としていますが管理上の名前であるだけでホスト名をコンテナ内でhostnameコマンドを実行してもこのような名前では通信できません。生成されたコンテナ内では英数字のランダムな値がホスト名となっています。この乱数的なホスト名を使用すれば先程作成したコンテナ間の通信はできそうな気がしますが、これでも通信はできません。

実はDockerで作成したコンテナはネットワークを指定しなければデフォルトネットワークにぶら下がる形で生成されます。このデフォルトネットワークに接続されると相互のネットワーク疎通ができないというものになっています。もちろん、Dockerホストとは通信は行なえます。

続きを読む

micro:bitワークショップでほしいもの個人的第一位購入(異論は認める)

はじめに

異論は認めます🤩

micro:bitワークショップでほしいもの個人的第一位とは?

micro:bitのワークショップをいろいろしていたりします。それは仕事こともありますし、個人的な活動でもやっていたりします。

ワークショップの環境はPC⇒micro:bitという環境もあれば、iPad⇒micro:bitという環境もあります。 PCを使う場合にはUSBケーブルによる接続を行うことが多いため、電源供給もUSBケーブル経由で供給されることが多いわけですが、 iPadを用いる場合には電池Boxを使用することになります。また、書き込み(ダウンロード)以外の動作でも、自由に持ち運ぶために電池Boxが必要になることもあります。

電池Boxを使うのは、非常に小回りが利く反面電池Boxのコネクタが割と固く、最後まで刺してしまうと外すのにものすごい苦労するという、言い換えるならば呪われているのではないかと思うほどのツラミあるコネクタになっています。このことを知っている人であれば奥まで挿さないようにと気を付けるのですが、子どもたちは問答無用で最後までしっかりと接続してきます😂

こういう場合にはコネクタを少し左右に動かすなどで接続部に遊びをつけてコネクタを抜くということを行うのですが、コネクタが小さいことや硬いこともあり難儀となっています。 さらに子どもたちに外してもらうことをうっかり言ってしまうと、電池Boxのコネクタそのままに、配線側が切れるといった再起不能不可避の状態が発生する点も考えるとなかなかに大変です。

自分は最大30名を超えるワークショップなどを担当することもあるので、この状態が数件発生するだけで軽く死ねます。

ということで、今回はこの固い電池Boxコネクタを回避するための工具を購入しました

続きを読む

Ubuntu22.04LTSにWindowsのリモートデスクトップ接続設定が含まれるようになった(VNCいらず)

Ubuntu22.04LTS(以下Ubuntu)からはデフォルトでWindowsのデスクトップ接続に対応しているようです。これまでは接続する側のWindowsPCにもVNCをインストールしていましたが、それがなくなるのであれば楽になるなと思い早速試してみました。

以下のようなPCにUbuntuをインストールして使用しています。

UbuntuのXのデスクトップの設定ツールを使用して、左側のメニューから【共有】を選択します。そして、選択するとダイアログバーの上部に有効化のスイッチが現れるのでこちらをクリックして有効化します。

すると、これでま無効化されていたダイアログ内部の操作が有効化されるので、さらに【リモートデスクトップ】をクリックします。

リモートデスクトップの設定ダイアログが開くので、この中から【リモートデスクトップ】スイッチと

【リモートコントロール】スイッチを有効化します。

リモートデスクトップで使用するユーザ名・パスワードがこのダイアログの下部に表示されているので、確認をしておきましょう。パスワードはログインユーザのパスワードにはなっていませんので特に注意です。

続きを読む

【メモ】UbuntuでSSHサーバーのインストール・有効化する

Ubuntu22.04LTSのインストール後はSSH接続ができないので、SSHサーバーをインストール、有効化します。

SSHサーバーのインストールと有効化

$ sudo apt update
$ sudo apt install openssh-server -y
$ sudo systemctl enable --now ssh

aptでパッケージインストールを行うとufwの設定も行ってくれるのでポートの設定は不要です。