投稿

Ubuntu/LinuxMintのDocker環境でKey Value Databaseを調べました ( mongoDB / Redis )

記事の更新日:2026/09/30 評価を加筆 1.概要 NoSQLデータベースの中で、以前テストしたことがある「MongoDB」と、メモリベースで高速な「Redis」をDocker環境で動かし、その特徴を調査しました。実際に手を動かしてみることで、データの扱われ方や効率的な使い方のヒントが見えてきました。 調査内容はMongoDBとRedisです。これらは従来のRDB(関係データベース)とは異なり、複雑なテーブル結合(JOIN)などの処理がないため、非常に高速に動作します。しかし、項目間の関連性を持たせにくいため、複雑なデータ構造を扱う場合はアプリケーション側での処理負担が増えそうだと感じています。 私の評価は以下の通りです。 (1) Key Value Databaseは、単純な仕組みなので構造化不要なデータ管理に向いています (2) 逆に、PostgreSQLのようなRDBであれば、データ構造があり、汎用性があります (3) MongoDBがKey Value Databaseの一般的製品で機能を知るには十分です (4) Redisはオンメモリdatabaseで速度重視のシステム向け製品です 2.詳細 (1) Key Value DatabaseのmongoDB 最低限の動作試験を目指します。 (a) docker-compolse.yml 以下のようにdocker-compose.ymlを作成します version: '3.8' services:   mongo:     image: mongo:latest     container_name: mongo-container     environment:       MONGO_INITDB_ROOT_USERNAME: root       MONGO_INITDB_ROOT_PASSWORD: example     ports:       - "27017:27017" (b) 起動 $ docker-compose up -d (c) containerにloginして、mongoを操作します。 コンテナにログ...

ubuntuインストール時の表示されない画面領域への対処方法

記事の更新日:2026/09/30 評価を加筆 1.概要 PCでは余り発生することはありませんが、サーバー機器にLinuxを導入する場合、ディスプレイの解像度とVGAの設定が合わずに既定値のVGA設定の640x480で導入作業を実施する場合があります。ディスプレイを変更して解像度を変えてから作業をすることもありました。 VGAが一般的であった時は、インストーラがVGAの規格に合うように画面レイアウトが設定されていましたが、高解像度のディスプレイを利用できるようになってからはディスプレイの解像度が合わないためにボタンが押せないことが発生することがあります。 ディスプレイを交換することなく、表示領域を拡張する方法があります。3つの手段がありますが、インストーラの画面を移動させて、ボタンを押せる場所にすることが一番簡単な方法です。 私の評価は以下の通りです。 (1) VGAポート接続の場合に発生する可能性が高い問題、HDMI以降は起きないようです (2) ラックサーバのコンソールで発生した経験が多いと感じています (3) コンソール切り替えスイッチとの併用が多かったと思います (4) OS導入時の問題で、OS導入後はドライバー設定で改善します 2.詳細 Ubuntuをインストールする時に規定値の解像度設定が800x600などに設定されて、インストールボタンが押せない場合があります。この対処方法に関して資料を見つけたので、その内容を記述します。 参考資料に内容が記載されています。参考資料はubuntu-18.04に関するものですが、それ以降のリリースでも有効です。 回避策として3つの方法が記載されていますが、私は、「(a) インストーラー画面をマウスで移動する」が良いと思っています。設定変更をする必要がなく、「Super」キー(Windows keyやAlt key)を押すことで画面を動かすことができます。 (b)や(c)を実行するにはインストールが必要です。Ubuntuのインストール作業中にaptコマンドで追加導入することは、少し無理をしている気がします。私自身は、(b)や(c)の方式を利用したことはありません。 (a) インストーラー画面をマウスで移動する 「Super」キーを押しながらインストーラー画面をドラッグします。 「Super」キーとは「Windows」キーの...

json形式をyaml形式に相互変換を試しました

記事の更新日:2026/09/30 評価を加筆 1.概要 データ受渡し形式は以前はプレーンテキストが主流でした。テキストファイルなので何でも自由に記述でき応用ができました。しかし、この事が汎用性を欠くことになり、jsonやyaml形式を利用して、定義情報と定義値のセットが明確になるようになったと思っています。 Pythonプログラムでデータ定義用途でjson形式を良く利用していました。yaml形式でデータ定義されたものを参照する機会があり、jsonとyamlの関係について、テストプログラムで調べてみました。Pythonプログラムは、json形式もyaml形式も辞書(dic)になるので同じ扱いになります。また、json形式をyaml形式に変換、yaml形式をjson形式へ変換も実施してみました。この内容を記述します。 私の評価は以下の通りです。 (1) Dockerを活用する上で、yaml形式は必須要素です (2) json形式は、JavaScriptの仕様に含まれていたもので必須要素とは思っていません (3) データ受渡し形式は、json形式もyaml形式もプレーンテキストより優れています (4) 汎用性を求められない場合は、プレーンテキストで十分と思います (5) yaml形式とjson形式は相互変換ができます 2.詳細 (a) 試験データ作成 test.json を以下のように作成 {     "node_a": {         "type": "int",         "length": "4"     },     "node_b": {         "type": "float",         "length": "8"     },     "node_c": {         "type": "char",         "length": "1"     } } test.yam...

Ubuntu/LinuxMintで動画ダウンロード対処法!多数のサイトに対応できるアプリ( yt-dlp )の導入手順

記事の更新日: 2026/09/04 1.概要 本記事はWindowsやMacでなく、Linux( Ubuntu/LinuxMint )で動画を処理する場合に関して記述しています。WindowsやMacに関する記事はネット上に多数ありますが、Linux関連は比較的少ない上に、わかりにくいものです。ディストリビューションによってコマンドが異なったり、GUIの設定箇所が変わることがあるためです。 私は今回調べて初めて知ったのですが、参考資料を参照すると、数千の動画ダウンロードサイトに対応しているとのことで、デファクトスタンダード的なソフトウェアがありました。以前はyoutube-dlと呼ばれていたソフトウェアでYoutubeのダウンロード用途でした。現在は、yt-dlpと名前が変わっていますが、もとはyoutube-dlでforkされた製品のようです。 このソフトウェアをネットで見つけることが難しく、自分で色々チャレンジして結論にいたしました。このような動作しないアプリから動くアプリを探す過程も面白いものです。参考にしていただけると良いと思います。 私の結論は以下の通りです (1) ubuntuのリポジトリには動作するyoutube-dlやyt-dlpが更新されていない (2) GitHubから最新のyt-dlpをダウンロードしてインストールする (3) youtube-dlがforkされてyt-dlpに変わっているが、youtubeで利用できる (4) Windows,Mac,Linuxに対応し、デファクトスタンダードとなっている (5) 著作権とダウンロードサイトの利用規約の遵守、自己責任で利用 【重要】本記事の閲覧にあたっての注意事項(免責事項) 自己責任の原則 : 本記事で紹介するツール(yt-dlp)の利用は、すべて利用者の 自己責任 となります。万が一、利用によって生じたトラブルや損害について、当ブログは一切の責任を負いません。 著作権法の遵守 : 著作権法(第30条1項2号)により、 違法にアップロードされたと知りながら音楽や映像をダウンロードする行為は私的使用であっても違法 (刑事罰の対象)となります。必ず合法的に公開されているコンテンツのみを対象としてください。 利用規約の遵守 : 各動画配信プラットフォーム(YouTube等)は、規約で外部ツールによ...

x86_64のLinuxMint/Ubuntu環境でARM64(KVM/QEMU)の仮想マシンを高速に動作させる方法

記事の更新日:2026/07/17 1.概要 2024年にubuntu-20.04環境のKVMでubuntu-20.04-arm64を動かしました。今回、LinuxMint環境で動作確認を再度作成したので、記事をリライトします。x86_64環境でarm64を動かすにはqemuのaarch64のエミュレーションを利用します。Virt-Managerでubuntuのarm64の環境にisoからインストールすることは可能ですが、遅くて実用的ではありません。理由はエミュレーションなので命令単位に実行するためです。 今回の試験は、KVM上でLinuxMint/Ubuntuのarm64が動作するのを確認して、arm64のPC購入の検討をする予定でした。従って、インストールすることでなく、動かすことが目標なので作成済み仮想マシンから導入するのが早道と考え直しました。その内容を記述します。 2.詳細 (1) LinuxMint環境 環境はLinuxMint 22.3です (a)KVM環境を構築 $ sudo apt -y install virt-manager qemu-system (b)ubuntu-24.04 server仮想マシンイメージ取得 $ https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-arm64.img Diskサイズを10Gに変更 $ qemu-img resize noble-server-cloudimg-arm64.img 10G (c)仮想マシン設定に必要な情報の作成 user-dataをvimで作成します #cloud-config user: ubuntu password: password chpasswd: { expire: false } ssh_pwauth: true user-data.isoを作成します $ touch meta-data $ genisoimage -output ./user-data.iso -volid cidata -joliet -rock user-data meta-data (d)仮想マシンのインストール $ virt-install \ --connect qemu:///system \ --name ub...

Docker Desktopの変わりにコマンドでDockerを利用 ( Dockerfile / docker-compose.yaml )

記事の更新日: 2026/08/25 1.概要 Docker Desktopの有料化は2021年9月から実施されています。DockerはLinux kernelの機能を利用して実現されており、Linuxのない世界では動作しません。WindowsやMacはLinuxのない世界です。WindowsはWSLの仮想環境でLinuxを利用できますが、WindowsやMacでDockerを利用するには、Docker Desktopを利用するのが一般的と認識しています。 私はLinuxをネイティブ環境で利用しているので、Dockerを利用するためにDocker Desktopを利用する必要性はありません。Dockerをコマンドで利用します。このことに関して、記述をします。 2.詳細 参考資料を参照すると、「Docker Desktop は、CLI を使って主要な処理を行わなくても、コンテナ、アプリケーション、イメージをマシン上から直接管理できる」と記述されています。逆に捉えると、CLIを利用するとDocker Desktopは利用しなくても良いことになります。 DockerはLinuxのkernel機能を利用していることを理解しておくことが重要です。従ってDocker実行環境ではLinuxのOSが起動していることになります。Macの場合はLinuxを仮想環境で動かしてその上でdockerを動作させていると理解しています。Windowsも同じですが、WSL環境はubuntuなので、これを利用してdockerを動かせます。 Docker Desktopは形の上では仮想環境にDockerを導入したものだと思っています。GUIベースで利用できるので便利なので利用する方が増えているのでしょう。利用者にはLinuxの存在を意識させないものとなっていると思っています。 私はubuntu上にDockerを導入して直接利用しているので、Docker Desktopを利用したことはありません。Dockerを利用する上で理解しておくことが2つあります。1つはcontainerを構成するDockerfile、もう1つはcontainer実行環境を提供するdocker-composeです。両者を理解するとCLIでdockerを利用できます。CLI環境になれるととても便利であると思っています。 3.所見 D...

lsblkの出力がubuntu/LinuxMintで変わりました

記事の更新日: 2026/09/05 1.概要 この記事は2024年の記事です。丁度、ubuntu 22.04に本格移行をする必要に迫られて、作業を開始した時にlsblkの出力結果がubuntu 20.04と異なることがわかり、運用しているshellの見直しをした時に記述しました。ubuntu 22.04移行でがっかりした時の気持ちを残したいと思って、記事を備忘録に残すことにしました。 ubuntuのVersion移行は定期的な行事と同じです。何らかの問題が普通に起きてしまいます。特に導入手順をshellを利用した自動化を勧めていると、細かい設定がとても気になります。設定が変更されることで自動化したshellの見直しが必要になるためです。 今回はlsblkのコマンドの実行結果表示が1項目増加したために、その結果を利用した自動化shellで問題が起きてしまいました。定期的な行事とは言えますが、shellを見直すことは案外辛い作業です。 ubuntu-20.04からubuntu-22.04へ移行をするための試験PCを準備して環境構築をしています。ubuntu-20.04で利用していたlsblkコマンドを利用していたshellが正しく実行されないので調べてみると、lsblkの表示項目が1項目増えていました。その内容に関して記述します。 私の評価は以下の通りです。 (1) ubuntu 22.04からlsblkにFSVER項目が追加、使われてない気がします。 (2) 本当に必要な項目ならば、ubuntu 20.04等の過去バージョンも揃えてほしい。 2.詳細 lsblk利用してDiskのUUIDを調べていますが、ubuntu-20.04とubuntu-22.04では、FSVER項目が追加されていることに気が付きました。ヘッダー情報を記述します。 具体的なコマンドは以下の通りです。 $ lsblk -f (a) ubuntu-22.04 NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS (b) ubuntu-20.04 NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT FSVERが追加されてことで、UUIDの場所がズレてしまい処理が正しく実行されませんでした。FSVE...