【ITニュース解説】My Command Reference

2025年09月06日に「Dev.to」が公開したITニュース「My Command Reference」について初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

ITニュース概要

コンテナ技術Dockerと、マイコン開発で使うArduino CLIの主要コマンドをまとめた技術記事。コンテナの起動や削除、イメージ管理、ボードへの書き込みといった基本的な操作を網羅。開発初心者が参照しやすいチートシートとして活用できる。

出典: My Command Reference | Dev.to公開日:

ITニュース解説

システムエンジニアを目指す上で、効率的な開発環境の構築と、ハードウェアとの連携は非常に重要なスキルとなる。この解説では、開発現場で広く利用される仮想化技術である「Docker」と、組み込みシステム開発に便利な「Arduino CLI」という2つの強力なコマンドラインツールについて、その基本的な使い方を解説する。

まず、Dockerから見ていく。Dockerは、アプリケーションとその実行に必要なものすべてを「コンテナ」と呼ばれる独立した環境にまとめて動かす技術である。これにより、開発環境の構築が簡単になり、「私の環境では動くのに」といった問題を解決できる。Dockerの操作は主に「コンテナ管理」「イメージ管理」「コンテナ実行」「ログとデバッグ」の4つのカテゴリに分けられる。

コンテナ管理では、docker ps -aコマンドで実行中および停止中のすべてのコンテナを確認できる。実行中のものだけを見たい場合はdocker psを使用する。不要になったコンテナはdocker stopで停止し、docker rmで削除する。特に、docker stop $(docker ps -q)のようにdocker ps -qと組み合わせることで、実行中の全てのコンテナを停止できる。同様に、docker rm $(docker ps -aq)で停止中の全てのコンテナを削除したり、-fオプションを付けてdocker rm -f $(docker ps -aq)で実行中のものも含めて強制削除したりできる。システム全体のクリーンアップにはdocker system pruneが非常に便利で、不要なコンテナ、ネットワーク、イメージを一括で削除する。さらに-a --volumesオプションを付けると、データが保存されるボリュームも含めて全て削除できるため、環境を完全にリセットしたい場合に役立つ。

次に、イメージ管理についてである。Dockerイメージは、コンテナを作成するための設計図のようなものであり、OS、アプリケーション、ライブラリなどが全て含まれている。docker imagesコマンドでローカルに存在するイメージの一覧を確認できる。不要なイメージはdocker image prune -aで削除できる他、docker rmi <image_name_or_id>で特定のイメージを削除することも可能である。全てのイメージを削除したい場合は、docker rmi $(docker images -q)というコマンドを使う。自分でアプリケーションのイメージを作成する場合は、docker build -t <tag_name> .コマンドを使用する。これは、Dockerfileという設定ファイルに基づいてイメージを構築する。また、Docker Hubなどのレジストリから既存のイメージを取得するにはdocker pull <image_name>を使用する。

コンテナの実行は、Dockerの最も基本的な操作である。docker run <image_name>コマンドで、指定したイメージから新しいコンテナを起動する。-itオプションを付けてdocker run -it <image_name> /bin/bashとすると、コンテナ内でシェルを対話的に操作できる。アプリケーションをバックグラウンドで実行したい場合は-dオプションを使用する。外部からコンテナ内のサービスにアクセスできるようにするには、-p <host_port>:<container_port>でポートマッピングを設定する。例えば、ホストマシンの8080ポートをコンテナの80番ポートに接続するといった具合である。また、コンテナの停止や削除によってデータが失われないようにするには、-v <host_path>:<container_path>オプションを使ってホストマシンとコンテナ間でディレクトリを共有する「ボリュームマウント」が有効である。

コンテナのログとデバッグは、問題解決に不可欠な機能である。docker logs <container_name_or_id>でコンテナの出力ログを確認でき、-fオプションを付ければリアルタイムでログを追跡できる。実行中のコンテナ内で追加のコマンドを実行したい場合は、docker exec -it <container_name_or_id> /bin/bashを使用し、コンテナ内部にアクセスできる。コンテナの詳細な設定情報や状態を確認するにはdocker inspect <container_name_or_id>コマンドが役立つ。

ここまでがDockerコマンドの基本である。次に、Arduino CLIについて解説する。Arduino CLIは、マイクロコントローラ開発で知られるArduinoの統合開発環境(IDE)の機能を、コマンドラインから利用できるようにしたツールである。これにより、自動化されたビルドやテストが可能になり、CI/CD環境での利用も容易になる。

ボード管理では、arduino-cli core update-indexで利用可能なボードパッケージのリストを更新し、arduino-cli core install esp32:esp32のように特定のボードパッケージをインストールできる。arduino-cli core listでインストール済みのボードを確認し、arduino-cli board listallarduino-cli core search <board_name>で利用可能なボードを検索できる。

ライブラリ管理も同様に重要である。arduino-cli lib update-indexでライブラリのインデックスを更新し、arduino-cli lib install "<library_name>"で必要なライブラリをインストールする。arduino-cli lib listでインストール済みのライブラリを確認でき、arduino-cli lib search <library_name>で新しいライブラリを探せる。不要になったライブラリはarduino-cli lib uninstall "<library_name>"で削除する。

開発したスケッチ(プログラム)のコンパイルとアップロードは、arduino-cli compile --fqbn <board_fqbn> <sketch_path>で行う。ここで--fqbnはボードの種類を正確に指定するための重要な引数である。arduino-cli upload -p <port> --fqbn <board_fqbn> <sketch_path>で、コンパイルしたスケッチを接続されたボードに書き込む。-pでシリアルポートを指定する。コンパイルとアップロードを同時に行うには、arduino-cli compile --upload -p <port> --fqbn <board_fqbn> <sketch_path>を使用する。アップロード速度を調整したい場合は--upload-field upload.speed=921600のようなオプションを追加できる。

ボード検出とポート管理も、ハードウェア開発では欠かせない。arduino-cli board listコマンドで現在PCに接続されているArduino互換ボードとそのシリアルポートを一覧表示できる。arduino-cli board details --fqbn <board_fqbn>で、特定のボードの詳細情報を確認できる。Arduino Uno (arduino:avr:uno)やESP32 (esp32:esp32:esp32)、ESP8266 (esp8266:esp8266:nodemcuv2)のようなFQBNは、ボードの種類を正確に識別するための表記であり、コマンド実行時に正しく指定する必要がある。

シリアルモニターの機能は、マイコンボードからPCへデータを送ったり、逆にPCからコマンドを送ったりするデバッグに非常に役立つ。記事ではpicocomというツールが紹介されている。picocom -b 115200 /dev/ttyUSB0のように、-bでボーレート(通信速度)を指定し、ボードが接続されているシリアルポート(例: /dev/ttyUSB0)を指定して接続する。Ctrl+Aを押した後にCtrl+Xを押すことで、picocomセッションを終了できる。利用可能なシリアルポートは、Linux環境であればls /dev/tty*dmesg | grep ttyコマンドで確認できることが多い。

Arduino IDEの設定ファイルは、Linux環境では通常~/.arduino15/ディレクトリに保存され、スケッチのデフォルトの保存場所は~/Arduino/である。これらの場所を把握しておくことで、設定の変更やスケッチの整理が容易になる。アップロード速度などの設定は、boards.txtファイルを直接編集するか、Arduino IDEのメニューから変更することも可能である。

最後に、便利なArduinoのコンパイルフラグについてである。arduino-cli compile --verboseを使用すると、コンパイル処理の詳細なログが表示されるため、問題発生時に原因を特定しやすくなる。--warnings allオプションを付けると、潜在的なバグや非効率なコードに関する警告を全て表示させることができ、品質の高いコード開発に繋がる。また、--cleanオプションを使用すると、コンパイル前に以前のビルド成果物を削除してクリーンな状態からビルドを開始するため、予期せぬビルドエラーを防ぐことができる。

これらのDockerとArduino CLIのコマンドは、システムエンジニアを目指す上での強力なツールとなる。それぞれ異なる目的を持つが、いずれもコマンドラインから効率的に作業を進めるための基礎となる。これらのコマンドを習得することで、開発作業の効率化だけでなく、より深いシステム理解にも繋がるだろう。

【ITニュース解説】My Command Reference | いっしー@Webエンジニア