自分メモ:ubuntu22.04 LTS Server にDockerでubuntu20.04とModesmixer2を入れた際の導入記録 + Dockerコマンド抜粋

Ubuntu22.04にmodesmixer2(MM2)を導入したいのですが。ubuntu20.04でしか動作しないとのこと。

今回はDockerを利用してubuntu20.04のコンテナを導入し、MM2を動作させることにしました。

以下 導入記録です。

# 対象となるサーバの種別確認
cat /etc/issue
Ubuntu 22.04.2 LTS \n \l

# ubuntu20.04取得
docker pull ubuntu:20.04 
docker run -it --name ZZZ.ubuntu ubuntu/ubuntu:20.04 -p 8787:8787 -p 20022:22 bash   

# バインドマウントを使用してコンテナを起動する(ro=読み取り)
docker run -it --name Z.Docker.ubuntu -v /tmp/ds215j:/usr/share/mm2:ro -d -p 8787:8787 -p 20022:22 ubuntu:20.04 bash

# コンテナに入る
docker attach Z.Docker.ubuntu

# 必要パッケージのインストール
apt update && apt install -y iputils-ping net-tools dnsutils wget vim nmap ssh openssh-server telnet

#ModeSMixer関連
bash -c "$(wget -O - https://raw.githubusercontent.com/abcd567a/mm2/master/install-mm2-ubuntu20.sh)" 
/root/modesmixer2 --inConnectId 192.168.0.100:30003:memo --location nn.nnn:nnn.nn --web 8787 --dbro /usr/share/mm2/BaseStation.sqb

# 実行させたままコンテナを抜ける
Ctrl-P Ctrl-Q

# 動作確認

Dockerfileを記述し、上記の内容を一度に実行してみた

Dockerfile

FROM ubuntu:20.04

RUN echo "Now Building..."
RUN apt update && apt install -y iputils-ping net-tools dnsutils wget vim nmap ssh openssh-server telnet

COPY ./modesmixer2 /root
COPY ./start_mm2.sh /root

EXPOSE 8787
EXPOSE 22
ENV USER="sample"

RUN echo "Completed..."
RUN echo "docker run --name Z.name -v /tmp/ds215j:/usr/share/mm2:ro -d -p 8787:8787 image:ver bash"
# 前提
# mkdir ./mm2
# modesmixer2のファイルは、Dockerfileと同じフォルダに存在して、
# Build時にイメージにコピーする


# 以下のコマンドを実行し、Dockerfileからイメージを作成。
docker image build -t z.my-modesmixer:1.0 .


# 以下のコマンドを実行し、コンテナを作成。(/tmp/ds215jと /home/USER/mm2をマウント)
docker run -it --name Z.my-mm2 -v /tmp/ds215j:/usr/share/mm2:ro -v /home/USER/mm2:/mnt -d -p 8787:8787 z.my-modesmixer:1.0 /bin/bash

# 作成したコンテナに入る
# attach
docker attach Z.my-mm2

# 以下のコマンドを実行しmodesmixer2を起動
/root/start_mm2.sh

-- OR --
/mnt/start_mm2.sh


# 実行させたままコンテナを抜ける
Ctrl-P Ctrl-Q


# コンテナ内で以下のコマンドを実行
/root/modesmixer2 --inConnectId 192.168.0.100:30003:memo --location nn.nnn:nnn.nn --web 8787 --dbro /usr/share/mm2/BaseStation.sqb



以上の操作でmodesmixer2の導入は完了です

dockerについて補足

コンテナ外でコマンド実行

# 書式 docker exec コンテナ名 command
# 実行例1
docker exec Z.my-mm2.d ls -l /root/

-rwxrwxr-x 1 root root 4714792 Mar  1 02:41 modesmixer2
-rwxrwxr-x 1 root root    1041 Mar  1 02:07 start_mm2.sh

# 実行例2
docker exec Z.my-mm2.d ps -ef

UID          PID    PPID  C STIME TTY          TIME CMD
root           1       0  0 06:57 pts/0    00:00:00 /bin/bash
root          11       1  0 06:58 pts/0    00:00:00 /bin/sh ./start_mm2.sh
root          12      11  0 06:58 pts/0    00:00:05 ./modesmixer2 --inConnectId 192.168.11.100:30003: --location 45.123.456 --web 8787 --dbro /usr/share/mm2/BaseStation.sqb
root          64       0  0 07:09 ?        00:00:00 ps -ef


# docker内でディレクトリ移動してコマンドを実行する
# docker exec some_container bash -c cd DIRECTORY_PASS && command

# 実行例3
docker exec Z.my-mm2.d bash -c cd /mnt/ && ls -l

コンテナをイメージとして保管する

# docker commit コンテナを新しいイメージとして保管
# Usage:  docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
# 実行例
docker commit a440f72b7ba9 test.image/modesmixer:1.0

# イメージにデータが登録されているか確認
docker run -it test.image/modesmixer:1.0 ls -l /root/

# 作成したイメージを動作させる
docker run -d -p 8787:8787 test.image/modesmixer:1.0

Dockerfileによるイメージ作成(イメージ作成コマンド実行)

docker-compose:再ビルドする場合

# docker-compose.ymlがあるフォルダで実行
docker-compose down && docker-compose build && docker-compose up -d

docker:コンテナを消す場合(一括完全削除:すべてのイメージが消えるので、実行は要注意)

docker-compose down --rmi all --volumes --remove-orphans

参考にさせていただきました、有益な情報をありがとうございます。

Docker ハンズオン - 基本コマンド編Docker コマンドを実際に実行してもらうために作った資料になります。 目的Docker? なにそれ美味しいの?Docker? 便利そうだけどお…
今日は「Dockerに入門する」の続きで、色々とカスタマイズしたコンテナをイメージとして保存したり利用したりする方法を書きたいと思います。
本稿ではdocker-composeで作られた、コンテナ、イメージ、ボリューム、ネットワークそして未定義コンテナ、全てを一括消去するコマンドを説明する。一括消去するコマンド docker-comp…
概要DBコンテナとしてdockerを使用していて、コンテナ外からDBを操作するシェルスクリプトを書いたらいい感じでした。そこでコンテナ外からdockerを操作する上で重要なコマンドとなるdock…

modexmixer2配布サイト

ModeSMixer2 installation script for RPi 2/3/4 and Raspbian Stretch/Buster - GitHub - abcd567a/mm2: ModeSMixer2 installation script for RPi 2/3/4 and Raspbian S...