Docker MachineでDocker Serverとしてあなたのラズベリーパイを使ってください


あなたが遅いコンピュータを持っているか、どうにか、あなたが公式にDockerをインストールすることができないならばDocker Desktop インストーラ、あなたの専用のDockerサーバーにあなたのraspberry pi(または他のサーバー)を使用することがあります.
最近、私は私のマシン上で実行していた私のVMにDockerデスクトップをインストールすることができなかった問題があったUnraid サーバ.問題は、私が使用したOS上でRyzen CPUの入れ子になった仮想化に関してはまだサポートされていないということです.Nested virtualization VM内でVMを実行できることを意味します.

それで、私はマックインストーラのための公式DockerをDockerをインストールすることができませんでした.
これに対する答えはdocker-machine .

どのようなDockerマシンですか?

docker-machine はDockerからのCLIプログラムですdocker 通常通りですが、代わりにサーバでコマンドを実行します.Dockerを実行している複数のサーバを持っていて、Docker環境をdocker-machine env YOUR_ENV .
あなたがいないならばdocker-machine インストールされたOSSパッケージマネージャでインストールするか、ダウンロードしてくださいGitHub .
MacOSでは、以下のようにします.
brew install docker-machine
場合でも、Dockerデスクトップをインストールすることはできませんが、まだダウンロードすることができますdocker CLI、あなたはそれを必要とします.

サーバの準備


使用する前にdocker-machine まずサーバ上の設定を行う必要があります.
私はログインするために使用される新しいユーザーを作成することをお勧めしますdocker-machine .
adduser docker-machine
次に、新しいユーザにコマンドを実行できるようにする必要がありますsudo , しかし、ユーザーがパスワードを入力せずにそれを使用することができます.これはセキュリティ上のリスクかもしれませんので、docker-machine ユーザーが強く、サーバーが正しく硬化されます.
エディットsudoers 書くファイルvisudo を入力し、エントリの後に新しい行を追加するroot .
docker-machine ALL=(ALL) NOPASSWD: ALL
保存してエディタを終了します.
The docker-machine 汎用ドライバはraspbian ので、一時的に変更することによってID フィールド/etc/os-release to debian .
#/etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
最後に、docker-machine ユーザ.私は、あなたがこれをする方法に関するプロセスを文書化しましたanother article . “公開鍵認証”セクションでスキップパスワードをスクロールし、それを設定する手順に従ってください.
今すぐあなたのサーバーを使用してDockerdocker-machine .

DockerマシンでDockerをインストールします


マシンにインストールされたDocker Machine CLIを持っているので、1つのコマンドを使ってDockerをサーバにインストールすることができます.
docker-machine create \
  --driver generic \
  --generic-ip-address=192.168.1.13 \
  --generic-ssh-user=docker-machine \
  --generic-ssh-key ~/.ssh/id_rsa \
  rpi
Running pre-create checks...
Creating machine...
(rpi) Importing SSH key...
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Detecting the provisioner...
Provisioning with debian...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
Checking connection to Docker...
Docker is up and running!
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env rpi
それは今あなたのサーバーにインストールされているDockerを持っている必要があります!

DockerマシンでDocker環境を変更


サーバにDockerコマンドを実行したいなら、Docker環境を以下のコマンドで変更するだけです.
eval $(docker-machine env rpi)
サーバー環境を常に使いたい場合は、.bashrc or .zshrc ファイル.

Dockerを使い始める


環境の変更後docker-machine 使えますdocker あなたが通常行うのと同じ方法!
docker ps
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

有用なDockerマシンコマンド

  • docker-machine ls - リストのすべての環境
  • docker-machine rm ENV - 既存の環境を削除する
  • docker-machine ip ENV - サーバのIPアドレスを取得する
  • docker-machine ssh ENV - サーバにssh接続をオープンする
  • 結論

    docker-machine クールなツールであり、それを設定し、使用する非常に簡単です.このアプローチはとても面白いと思います.今のところ、セットアップは非常によく機能し、私はそれに欠点を見ていない.
    唯一の異なることは、私の代わりにサーバのIPを使わなければならないということですlocalhost Dockerで動作するサービスにアクセスしたい場合.