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の設定も行ってくれるのでポートの設定は不要です。

WindowsでDocker環境を使ったNode-REDの導入

これまでは色々とNode-REDを使用してきましたが今回はDocker環境を使ったものを設定します。 httpsが使用できないということもあり、ローカル環境のものでは無くクラウド環境のものを使用してきたのですが、今回はちょっとDockerの復習とNode-REDからSeleniumを使ってみることを見据えてやってみようと思います。また、以下のリンクを参考にしていましたが、少しだけWindows側では変更しなければならない事もあったのでその部分を追記してみようと思います。

参考

nodered.jp

DockerでNode-REDコンテナを構築し実行する

参考のリンクの情報には以下の様に記載があります。このリンク先の情報は大変丁寧にかかれており素晴らしい内容だと思います。

$ docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red

上記を参考にしてコンテナを起動すると…

一見これで問題はなさそうなのですが、このままコンテナを起動しても1つだけうまくいかない部分があります(うまくいかないとはいってもコンテナは起動します)。

続きを読む