LoginSignup
1
1

More than 1 year has passed since last update.

DockerでSORACOM Arcを使う (Ubuntu 20.04)

Last updated at Posted at 2022-01-08

任意の IP ネットワークからSORACOMプラットフォームへ接続できるSORACOM Arc
Dockerで動かすときに少し詰まったので共有です。

2022/2/25追記
Dockerfileを使ったより簡単なセットアップ方法を追記しました。
このリポジトリのREADMEに従ってコンテナを作成することですぐにDockerでSORACOM Arcを使用できます。

環境

  • Windows 11
  • WSL2 (Ubuntu 20.04)
  • CPU Architecture: x86_64
  • Docker 20.10.11

Dockerイメージを取得

今回はUbuntu 20.04を使用しました。

$ docker pull ubuntu:20.04

公式ドキュメントによると、サポート対象は次の通りです。

以下のプラットフォームをサポートします。

Linux amd64
Ubuntu 20.04.2 LTS
Linux arm (Raspberry Pi 32-bit)
Raspberry Pi OS 2021-05-07
Ubuntu 20.04.2 LTS
また、テストと開発用途として以下のプラットフォームで動作します。サポートはありません。 **macOS Big Sur 以降**

コンテナの作成&起動

$ docker run --cap-add NET_ADMIN -it ubuntu:20.04

--cap-add とはデフォルトで無効化されている capability を有効化するためのオプションです。
SORACOM Arcのトンネルを作成するにはNET_ADMINの権限が必要です(参考)。

capabilityとは?

Linuxにはこのような場合に使える,rootが持っている絶対的な権限を細かく分け,必要な権限だけを与える仕組みが存在します。これがケーパビリティ(capability)です。

引用元:第42回 Linuxカーネルのケーパビリティ[1]LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術 

パッケージのインストール

取得したDockerイメージはのちに使うパッケージがいくつかインストールされていないので、インストールしておきましょう。

$ apt update && apt install -y wget iputils-ping net-tools

/dev/net/tunの作成

$ mkdir -p /dev/net
$ mknod /dev/net/tun c 10 200
$ chmod 666 /dev/net/tun

soratun によるバーチャル SIM/Subscriber のブートストラップ

公式ドキュメントの通りにやるとうまくいきました。
ただし、ステップ4の

soratun --config /path/to/arc.json up

を実行するとセッションが開始されます。これは生かしておく必要があるので、別のターミナルで

$ docker exec -it YOUR_CONTAINER_ID /bin/bash

をして

$ ping -c 3 pong.soracom.io

をすることで疎通確認ができます。

後記

soratunって名前かわいいな、と思ったら sora-com tun-nelのことなんですね。

参考サイト

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1