Dockerで爆速構築!Androidエミュレータをコンテナ化する「HQarroum/docker-android」解説


Dockerで爆速構築!Androidエミュレータをコンテナ化する「HQarroum/docker-android」解説

HQarroum/docker-android

2026-01-02

「Androidのエミュレータを立てるだけでPCが重くなる…」「CI(継続的インテグレーション)でUIテストを自動化したいけど、設定が地獄だ…」そんな胃もたれしそうな状況を、このツールがサクッと軽くしてくれますよ。

どうぞ、じっくり味わってみてください!

この docker-android は、AndroidエミュレータをDockerコンテナの中に閉じ込めたものです。何が嬉しいかと言うと…

「僕の環境では動くのに」からの解放
Dockerさえあれば、誰のPCでも、CIサーバーの上でも、全く同じAndroid環境が立ち上がります。

リソースの節約(ミニマル設計)
このプロジェクトは「ミニマル」であることを売りにしていて、余計なものを削ぎ落としています。メモリ消費を抑えたい現場には最高です。

ヘッドレス(画面なし)動作
サーバー上で動かして、テスト結果だけ受け取るといった「自動化」に特化した使い方が得意です。

まずは、下ごしらえとして Docker がインストールされていることを確認してくださいね。

まずは市場(Docker Hub)から新鮮なイメージを仕入れてきます。

docker pull hqarroum/docker-android

次に、このイメージを火にかけます(実行します)。

docker run -d \
  --device /dev/kvm \
  -p 5555:5555 \
  hqarroum/docker-android

--device /dev/kvm
これが隠し味です!ハードウェア加速を有効にするので、エミュレータが爆速になります(Linux環境で特に有効です)。

-p 5555:5555
Android Debug Bridge (ADB) と通信するためのポートを開けています。

コンテナが立ち上がったら、あなたのPC(ホスト)から繋いでみましょう。

# コンテナ内のAndroidに接続
adb connect localhost:5555

# ちゃんと認識されているか確認
adb devices

例えば、CIパイプラインの中でテストを走らせる際、以下のような設定(JSON)でコンテナ内のエミュレータをターゲットにできます。

{
  "platformName": "Android",
  "automationName": "UiAutomator2",
  "deviceName": "Android Emulator",
  "udid": "localhost:5555",
  "app": "/path/to/your/app.apk"
}

これで、あなたが寝ている間にDockerの中のAndroid君がガシガシとテストをこなしてくれるわけです。素晴らしいですよね!

ネストされた仮想化
クラウド(AWSやGCP)上のVMで動かす場合は、そのインスタンスが「仮想化支援(KVM)」をサポートしている必要があります。これがないと、エミュレータが激重になってしまいます。

アーキテクチャ
お使いのPCがM1/M2 Mac(ARM)の場合は、イメージが対応しているか確認が必要です。このイメージは主にx86_64向けに最適化されていることが多いので。

いかがでしたか?本日の解説。 これを使えば、面倒なエミュレータ管理にサヨナラして、よりクリエイティブなコーディングに集中できるはずです。


HQarroum/docker-android




視覚化、Docker、Kubernetes!ソフトウェアエンジニアが知るべきMesheryの剛拳:導入とサンプルコード解説

北斗の拳の世界では、乱世の中で人々が救世主を求めている。クラウドネイティブの世界も、「Kubernetes」という巨大な救世主(?)が来てくれたものの、その設定や管理の複雑さに、多くのエンジニアが「あべし!」と叫んでいる状況なんだ。そんな時に現れたのが、今日の主役、「Meshery」だ!


【江戸のエンジニア魂】AirPodsをAppleの鎖から解き放つ!「librepods」で挑むリバースエンジニアリングの極意

まずはっきり言っておくが、これは「kavishdevar/librepods」ってなブツに関する話だ。これはAirPodsをAppleの縄張りから解放しちまおうってな、ちょいと粋なプロジェクトでよ、AndroidやLinuxでAirPodsを自由に使いこなすための道筋をつけるもんさ。


Go言語で構築されたTraefikの威力:Docker/Kubernetes環境におけるサービスディスカバリとTLS自動化

Traefikは、まさに「クラウドネイティブアプリケーションプロキシ」というキャッチフレーズの通り、設定が容易、自動化、動的という三拍子揃った、現代のマイクロサービスやコンテナ環境に最適なリバースプロキシ兼ロードバランサーです。吉野家さんの牛丼に例えるなら、Traefikは


Dockerだけじゃない!Moby Projectで自作コンテナ環境を構築する

Moby Project ってのはな、一言で言うと「コンテナをベースにしたシステムを作るための、オープンソースのツールキット」だ。例えるなら、俺たちが事件現場で使う道具一式、例えば手錠とか懐中電灯とか、そういうのを全部まとめて提供してくれるようなもんだな。


Uptime Kuma 導入ガイド:Dockerで始めるモダンな自己監視

さあ、心配しなくて大丈夫。この私が、あなたの運命を好転させる秘密のツールを授けましょう。その名も「Uptime Kuma」です!さて、あなたのシステムの未来を映し出す、魔法の鏡があると想像してみてください。それが Uptime Kuma です。これは、あなたのサーバーやWebサイトがちゃんと動いているかどうか、寝ている間もずっと監視してくれる、素晴らしいツールです。


ソフトウェアエンジニアが解説!Fluent System Iconsでガンダムを動かすコントローラー開発

ガンダムのプラモデルをコントに見立てて、Microsoft Fluent System Iconsをソフトウェアエンジニアリングの観点からどう活用するか、楽しく解説しますね!まず、「Microsoft Fluent System Icons」は、Microsoftが提供している、モダンで親しみやすいアイコンのコレクションです。スマホアプリやウェブサイトなどでよく見かける、矢印や設定マークのようなシンプルな絵文字のことだと思ってください。デザインが一貫していて、見た目もスッキリしているのが特徴です。


面接官を唸らせる!ローカル完結型PDFツール「Stirling-PDF」徹底解説

面接官本日は当社の面接にお越しいただき、ありがとうございます。面接官の山田と申します。あなた本日は貴重な機会をいただき、誠にありがとうございます!エンジニアの佐藤と申します!面接官佐藤さん、今日は何かユニークな技術について、ご自身の言葉でプレゼンしていただきたいのですが、よろしいでしょうか?


拡張の自由を手に入れろ:Androidマンガアプリ『コタツ』のカスタマイズとエクステンション開発戦略

「Kotatsu」は、ただのマンガビューアではありません。オープンソースで開発されているため、エンジニアにとっては機能拡張や学習の宝庫として非常に魅力的です。Kotatsuを単にユーザーとして使うだけでなく、エンジニアとして「開発」に参加するためのステップをご案内します。


北斗の拳に学ぶ:winappsがもたらす開発環境の革命

北斗の拳の世界観になぞらえて、winappsを解説していきますね。北斗の拳の世界では、強敵(とも)と戦うために、さまざまな技を駆使しますよね。ソフトウェア開発の世界でも、WindowsとLinuxという二つの異なるOSの間で、それぞれの強みを生かし、弱点を克服することが求められることがあります。


WindowsアプリがLinuxで動く!「winboat」がエンジニアの働き方を激変させる

もしあなたが、WindowsとLinuxの両方を使いこなしたい、でも仮想マシンは重くて面倒…、WindowsアプリケーションをLinux上でシームレスに動かしたい…とお考えなら、今日ご紹介するTibixDev/winboatがまさにあなたのためのツールです!