Multipassサイクロンチュートリアル
6548 ワード
作者:LeanCloud weakish
コンテナ技術は環境の一貫性を保証し、プロジェクトの配置、配置プロセスを簡素化することができるため、多くの開発者に人気がある.コンテナに基づいてローカルプロジェクト環境の構成を簡素化しようとしたり、dockerがまだ適切ではないことを嫌っている場合は、multipassを試してみてください.
MacOS(Sierra以上のバージョンをサポート)は直接Homebrewでインストールできます.
Windowsユーザーはここでインストールをダウンロードすることができます(Windows 10のみをサポートし、Windowsホーム版またはv 1803以前のWindows 10プロフェッショナル版/エンタープライズ版であれば、VirtualBoxを別途インストールする必要があります).
現在のバージョンは今月リリースされたばかりの1.1.0であることがわかります.多くのユーザーにとって、このバージョンの最大の更新はサポートエージェントです.1.1.0からmultipassは、多くのコマンドラインツールのように、
まず、コンテナを作成します.
初回作成時にミラーをダウンロードする必要があり、ネットワークがスムーズな場合は、しばらくお待ちください.
コンテナが作成されるとmultipassはすぐに起動し、コンテナが作成されると直接使用できます.
容器上で直接(
さまざまな操作が可能な完全なLinux環境に入りました.たとえば、React Hooksを説明するチュートリアルを見たとします.チュートリアルの例を体験するつもりです.
あら、システムは
ただし、現在のLTSバージョンのUbuntu倉庫のNode.jsは古いので、LTSバージョンのNodeをインストールします.js(12):
プロジェクトが走り出して、素晴らしいです.
ここで
次に、現在開発中のNodeを容器化してみましょう.jsプロジェクト.以前とは異なり、容器をカスタマイズして使いやすくします.
まず、私たちのノード.jsプロジェクトはクラウドプラットフォームに配備されるので、コンテナの仕様はできるだけクラウドプラットフォームの生産環境と一致することを望んでいます.次に、ノードを手動でインストールしました.js、今回はこのインストールプロセスを自動化したいと思います.
そこで、次のコマンドを使用してコンテナを作成します.
コンテナのディスクサイズとメモリサイズをコマンドラインパラメータで指定し、Ubuntu 18.04を使用することを明示的に指定します.コンテナの作成に成功したら、
以前に作成されたreactコンテナでは、multipassにはデフォルトで5 Gハードディスクと1 Gメモリが割り当てられています.leanコンテナには、2 Gハードディスクと256 Mメモリが割り当てられています(これは、クラウドプラットフォームLeanCloudクラウドエンジンの無料版体験インスタンスを使用する予定の仕様です).また、基本情報にはCPUコアの情報はなく、multipassではデフォルトでコンテナに1つのCPUコアが割り当てられます.
コンテナ初期化プロファイルはcloud-init規格に従い、yamlファイルからユーザ、ファイル、ソフトウェアウェアハウス、DNS解析、SSH鍵、puppet、chefなどの各種初期化構成を行うことができる.
コンテナ内でプロジェクトをテスト、導入するだけで、vimまたはemacs開発プロジェクトを
同時にLeanCloudにアカウントを登録し、アプリケーションを作成し、次の配置操作を体験しやすい.
マウントが完了すると、ホスト上で手持ちのIDE、エディタ開発プロジェクトを使用して、
画面は次のように出力されます.
以前は
リソースを節約する場合は、以前に作成したreactなど、一時的に使用できないコンテナを停止できます.
その後、
最後に、macOSやWindows上でLinux環境を構築し、いくつかの操作を行いたい場合が多いです.multipassはこの使用シーンに最も対応しています.
はい、あなたは間違っていません.コマンドだけで、ホストと隔離されたLinuxコンテナに入ることができます.MultipassはPrimaryというコンテナを自動的に作成して実行します(まだ作成または実行されていない場合)、このコンテナはホストのホームディレクトリを自動的にマウントし、安心して実行します.
Multipassは非常にシンプルで直感的に使用されています.Canonical(Ubuntuの背後にある会社)が発売したため、使用するミラーはCanonicalが更新を担当し、最近のセキュリティ更新や、各プラットフォームの仮想化スキーム(WindowsのHyper-V、macOSのHyperKit、LinuxのKVM)に最適化されたカーネルを含む.しかし、同様の理由から、現在サポートされているミラーもUbuntuに限られている.
コンテナ技術は環境の一貫性を保証し、プロジェクトの配置、配置プロセスを簡素化することができるため、多くの開発者に人気がある.コンテナに基づいてローカルプロジェクト環境の構成を簡素化しようとしたり、dockerがまだ適切ではないことを嫌っている場合は、multipassを試してみてください.
インストール
MacOS(Sierra以上のバージョンをサポート)は直接Homebrewでインストールできます.
brew cask install multipass
Windowsユーザーはここでインストールをダウンロードすることができます(Windows 10のみをサポートし、Windowsホーム版またはv 1803以前のWindows 10プロフェッショナル版/エンタープライズ版であれば、VirtualBoxを別途インストールする必要があります).
multipass version
コマンドを実行してインストールに成功したことを確認し、バージョンを確認します.multipass 1.1.0+mac
multipassd 1.1.0+mac
現在のバージョンは今月リリースされたばかりの1.1.0であることがわかります.多くのユーザーにとって、このバージョンの最大の更新はサポートエージェントです.1.1.0からmultipassは、多くのコマンドラインツールのように、
http_proxy
環境変数で指定されたエージェントに従います.Multipassはコンテナを作成する際にネットワークからミラーをダウンロードする必要がある場合がありますが、ネットワーク接続性が不十分な場合が多いため、サポートエージェントは使用体験を大幅に改善できます.に手を触れる
まず、コンテナを作成します.
$ multipass launch --name react
Launched: react
初回作成時にミラーをダウンロードする必要があり、ネットワークがスムーズな場合は、しばらくお待ちください.
コンテナが作成されるとmultipassはすぐに起動し、コンテナが作成されると直接使用できます.
$ multipass exec react -- lsb_release -d
Description: Ubuntu 18.04.4 LTS
lsb_release
でLinuxリリースの情報が印刷されます.以前はコンテナを作成するときにどのようなミラーを使用するかを指定していませんでしたが、上記のコマンドの出力は、multipassが現在のLTSバージョンのUbuntuをデフォルトで使用することを示しています.容器上で直接(
exec
)コマンドを実行するほか、shell
コマンドで容器に「入る」こともできます.multipass shell react
さまざまな操作が可能な完全なLinux環境に入りました.たとえば、React Hooksを説明するチュートリアルを見たとします.チュートリアルの例を体験するつもりです.
git clone https://github.com/hjiang/react-hook-demo.git
cd react-hook-demo
npm install
あら、システムは
npm
がインストールされていないことを教えてくれて、apt
を通じてインストールすることをお勧めします.The program 'npm' is currently not installed. You can install it by typing:
sudo apt install npm
ただし、現在のLTSバージョンのUbuntu倉庫のNode.jsは古いので、LTSバージョンのNodeをインストールします.js(12):
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs
npm install
npm start
プロジェクトが走り出して、素晴らしいです.
Compiled successfully!
You can now view leancloud-react-hook-tutorial in the browser.
Local: http://localhost:3000/
On Your Network: http://192.168.64.5:3000/
Note that the development build is not optimized.
To create a production build, use npm run build.
ここで
192.168.64.5
はMultipassがreactというコンテナに割り当てたIPなので、ホスト上でブラウザを開いてhttp://192.168.64.5:3000/
にアクセスして効果を見ることができます.カスタム
次に、現在開発中のNodeを容器化してみましょう.jsプロジェクト.以前とは異なり、容器をカスタマイズして使いやすくします.
まず、私たちのノード.jsプロジェクトはクラウドプラットフォームに配備されるので、コンテナの仕様はできるだけクラウドプラットフォームの生産環境と一致することを望んでいます.次に、ノードを手動でインストールしました.js、今回はこのインストールプロセスを自動化したいと思います.
そこで、次のコマンドを使用してコンテナを作成します.
multipass launch --name lean --disk 2G --mem 256M --cloud-init lean.yaml 18.04
コンテナのディスクサイズとメモリサイズをコマンドラインパラメータで指定し、Ubuntu 18.04を使用することを明示的に指定します.コンテナの作成に成功したら、
multipass info
でコンテナの基本情報を表示できます.$ multipass info --all
Name: lean
State: Running
IPv4: 192.168.64.2
Release: Ubuntu 18.04.4 LTS
Image hash: fe3030939822 (Ubuntu 18.04 LTS)
Load: 0.11 0.30 0.16
Disk usage: 1.3G out of 2.0G
Memory usage: 71.4M out of 229.7M
Name: react
State: Running
IPv4: 192.168.64.5
Release: Ubuntu 18.04.4 LTS
Image hash: fe3030939822 (Ubuntu 18.04 LTS)
Load: 0.00 0.00 0.00
Disk usage: 1.7G out of 4.7G
Memory usage: 112.1M out of 985.7M
以前に作成されたreactコンテナでは、multipassにはデフォルトで5 Gハードディスクと1 Gメモリが割り当てられています.leanコンテナには、2 Gハードディスクと256 Mメモリが割り当てられています(これは、クラウドプラットフォームLeanCloudクラウドエンジンの無料版体験インスタンスを使用する予定の仕様です).また、基本情報にはCPUコアの情報はなく、multipassではデフォルトでコンテナに1つのCPUコアが割り当てられます.
lean.yaml
はコンテナの初期化プロファイルで、内容は以下の通りです.#cloud-config
runcmd:
- curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
- sudo apt-get install -y nodejs
- wget https://releases.leanapp.cn/leancloud/lean-cli/releases/download/v0.21.0/lean-cli-x64.deb
- sudo dpkg -i lean-cli-x64.deb
runcmd
は、コンテナの初回起動時に実行するコマンドを指定することができ、ここでは、以前にノードをインストールしたことをコピーする.jsのコマンドには、lean-cli
をインストールするコマンドも追加されています(lean-cli
でコードをクラウドプラットフォームに配備します).コンテナ初期化プロファイルはcloud-init規格に従い、yamlファイルからユーザ、ファイル、ソフトウェアウェアハウス、DNS解析、SSH鍵、puppet、chefなどの各種初期化構成を行うことができる.
コンテナ内でプロジェクトをテスト、導入するだけで、vimまたはemacs開発プロジェクトを
multipass shell
からコンテナ内で使用するつもりはありません.したがって、ホスト上のディレクトリを直接マウントします.multipass mount demo lean:/home/ubuntu/demo
demo
は私たちのノードです.jsプロジェクトディレクトリは、読者がテストしたい場合は、次のテンプレートプロジェクトを使用します.git clone https://github.com/leancloud/node-js-getting-started demo
同時にLeanCloudにアカウントを登録し、アプリケーションを作成し、次の配置操作を体験しやすい.
マウントが完了すると、ホスト上で手持ちのIDE、エディタ開発プロジェクトを使用して、
multipass shell lean
からコンテナ内でテストすることができます.cd demo
lean login # LeanCloud
lean switch #
npm install #
lean up # ( )
画面は次のように出力されます.
Node app is running on port: 3000
以前は
multipass info
を通じてleanコンテナのIPがhttp://192.168.64.2
であることを知っていたので、シンクホスト上でhttp://192.168.64.2:3000/
にアクセスすれば効果を見ることができます.効果が予想通りであれば、lean deploy --prod 1
配置プロジェクトをコンテナ内で実行できます.その他
multipass list
を実行すると、すべてのコンテナがリストされます.Name State IPv4 Image
lean Running 192.168.64.2 Ubuntu 18.04 LTS
react Running 192.168.64.5 Ubuntu 18.04 LTS
リソースを節約する場合は、以前に作成したreactなど、一時的に使用できないコンテナを停止できます.
multipass stop react
その後、
multipass start react
を運転して容器を再運転することができます.後で使用しない場合は、いっそ削除することもできます.multipass delete --purge react
最後に、macOSやWindows上でLinux環境を構築し、いくつかの操作を行いたい場合が多いです.multipassはこの使用シーンに最も対応しています.
multipass shell
はい、あなたは間違っていません.コマンドだけで、ホストと隔離されたLinuxコンテナに入ることができます.MultipassはPrimaryというコンテナを自動的に作成して実行します(まだ作成または実行されていない場合)、このコンテナはホストのホームディレクトリを自動的にマウントし、安心して実行します.
締めくくり
Multipassは非常にシンプルで直感的に使用されています.Canonical(Ubuntuの背後にある会社)が発売したため、使用するミラーはCanonicalが更新を担当し、最近のセキュリティ更新や、各プラットフォームの仮想化スキーム(WindowsのHyper-V、macOSのHyperKit、LinuxのKVM)に最適化されたカーネルを含む.しかし、同様の理由から、現在サポートされているミラーもUbuntuに限られている.