banner
云野阁

云野阁

闲云野鹤,八方逍遥

AndroidスマートフォンにDockerをインストールする

Android 携帯で ALPINE-TERM を使用して docker をインストール#

Alpine Term は、Termuxに基づいた Android アプリで、QEMU 仮想マシンAlpine Linuxを統合しており、Android 携帯上で Root なしで完全な Linux 環境を実行でき、Docker などのコンテナ技術を直接使用できます。

環境要件#

携帯のシステム環境は以下を満たす必要があります:

  • AArch64 アーキテクチャ(一般的にはこれです)
  • Android 7.0 以上
  • 内部ストレージに少なくとも 500MB の空き容量。
  • ネットワークに接続

Alpine Term のインストール#

(1)GitHub から ALPINE-TERM APK(606MB)をダウンロードします。

ダウンロードリンク:https://github.com/FakeRajbhx/alpine-term/releases/download/New/alpine-term-v16.0-release.apk

(2)携帯にインストールが完了したら、アプリに入り、システムの読み込みが完了するのを待ちます。

(3)デフォルトユーザー alpine とパスワード alpine を入力して、システムにログインします。

(4)root アカウントに切り替えます。root ユーザーのデフォルトパスワードは alpine です。passwdを入力して変更できます。

# rootコマンドラインに切り替え
sudo -s

(4)sshd サービスの設定ファイルを変更し、SSH リモート接続を有効にします。

vi /etc/ssh/sshd_config
# rootユーザーの接続を許可
PermitRootLogin yes
# パスワードログインを有効にする
PasswordAuthentication yes

# sshdサービスを再起動
service sshd restart

(5)ALPINE-TERM のターミナル画面の上部で、右にスワイプしてターミナルメニューを表示し、[1] QEMUを選択し、以下のコマンドを入力して Enter を押し、ssh リモート接続ポートを開きます。

# 22ポートを携帯の8034ポートにマッピング
hostfwd_add tcp::8034-:22

1

ALPINE-TERM を起動するたびに、このコマンドを入力する必要があります。

(6)ソフトウェアリポジトリのソースを変更します。

# 既存のソフトウェアリポジトリのソースを無効にする
mv /etc/apk/repositories /etc/apk/repositories.bak
# 清華源を使用
echo "
https://mirrors.tuna.tsinghua.edu.cn/alpine/v3.13/main
https://mirrors.tuna.tsinghua.edu.cn/alpine/v3.13/community
" > /etc/apk/repositories 

(7)DNS を変更します。

sed -i 's/nameserver 94.16.114.254/nameserver 114.114.114.114/g' /etc/resolv.conf 
sed -i 's/nameserver 185.120.22.15/nameserver 223.5.5.5/g' /etc/resolv.conf

docker のインストール#

(1)パッケージを更新します。

apk update  && apk upgrade --force-broken-world

(2)システムには docker が付属していますが、docker compose はありません。

# 自動起動を設定
rc-update add docker boot
# dockerを起動
service docker start
# バージョンを確認
docker version

[オプション] ソフトウェアリポジトリのソースを変更し、システムに付属の docker をアンインストールし、新しい docker と docker compose をインストールします。

echo "
https://mirrors.tuna.tsinghua.edu.cn/alpine/latest-stable/main
https://mirrors.tuna.tsinghua.edu.cn/alpine/latest-stable/community
" > /etc/apk/repositories 
# 更新
apk update 

# dockerをアンインストール
apk del docker --force-broken-world
# 新しいdocker、docker composeをインストール
apk add docker docker-compose  docker-cli-compose --force-broken-world

(3)国内のミラーソースを設定し、docker のデフォルトストレージディレクトリを変更します。

echo '{
  "data-root": "/data/dockerData",
  "registry-mirrors": ["https://docker.1ms.run"]
}' > /etc/docker/daemon.json

(4)docker を起動し、自動起動を設定します。

# dockerを再起動
service docker restart
# 自動起動を設定
rc-update add docker boot
# バージョンを確認
docker version
docker compose version

アクセスのテスト#

(1)nginx コンテナを作成します。

# nginxイメージをプルしてコンテナを作成し、ホストの8080ポートをマッピング
docker run -itd --name=nginx -p 8080:80 nginx
# コンテナの実行状況を確認
docker ps

コンテナ起動時に類似のエラーが発生した場合は、alpine ホストを再起動してください。

docker: Error response from daemon: failed to create endpoint nginx on network bridge: failed to add the host (veth3f2f206) <=> sandbox (veth9a8264a) pair interfaces: operation not supported.

(2)QEMU で対応するポートを設定します。

# ホストの8080ポートを携帯の8081ポートにマッピング
hostfwd_add tcp::8081-:8080

SSH のマッピングと同様に、コンテナポートをマッピングする場合も、QEMU で実行する必要があります:

hostfwd_add tcp:: 携帯ポート -: ホストポート

(3)ブラウザに ip + ポートを入力してアクセスします。

2

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。