OrbStackとは
サイトのURLはこちら
Docker Desktop for Macの代替として注目されているらしいです。
macOS上でDockerコンテナ等やLinuxマシン、Kubernetes等を動かせたりします。
本題
Docker Desktopで起動していたコンテナとかイメージを諸々OrbStackに移行したい!
となった時の手順や注意点などを主にこの記事では記載しております。
一通り網羅できるような記事としてかけていたら嬉しいです。
OrbStackをインストール
方法は、2種類あります。
- Homebrewを使ったインストール
brew install orbstack
- サイトからdmg形式のファイルをダウンロードする
OrbStackの起動
FinderのアプリケーションからOrbStackのアイコンを探し、クリックし起動
起動後、上記のような画面が出てきます。
Docker, Kubernetes, Linuxどれを利用するのか選択します。
今回は、Docker DesktopからOrbStackに移行するので、Dockerを選択します。
トップ画面
Dockerを選択すると上記のようなトップ画面が出ます。
*トップ画面が出てからDocker Desktopの内容からmigrateしてしまうケースがあるらしいです。
Docker Desktop→OrbStackにコンテナやイメージの情報をmigrateする
2種類の方法があります。
- TOP画面に表示されている"Migrate from Docker Desktop”をクリックする
- 上部メニューから”File”->“Migrate Docker Data”でDocker Desktopにあるコンテナ、ボリューム、イメージをOrbStackに移してくれます
migrateした後、下記のようなポップアップが出ることがある。
内容はモザイクをつけていますが、
container /~: create container: [Docker] No such image: ...
のような内容が記載されています。
簡単に言えば、migrateしたけど、移せなかった内容があるよ!
ということです。
重要なコンテナやイメージではないなら気にしなくても問題ないかと思います。(私は、特に問題なかったです)
今回私の方でエラーが出たのは、セットアップ中に作成したデータやイメージなどが移せなかっただけで、セットアップ時に再度作成するので、問題なかったです。
Dockerコンテキスト情報を確認と変更
docker context ls
上記、コマンドは、利用しているコンテキストを確認する
出力例
$ docker context ls
NAME DESCRIPTION DOCKER ENDPOINT ERROR
default Current DOCKER_HOST based configuration unix:///hogehoge
orbstack * OrbStack unix:///hogehoge
マイグレーションが完了したなら、Docker Desktopは不要でコンテキストとしては、OrbStackを指し示すようにする。そのため、下記コマンドを実行
"*"が今利用しているコンテキストになります。
docker context use orbstack
出力例
% docker context use orbstack
orbstack
Current context is now "orbstack"
Dockerネットワークの確認や削除
Docker Desktopで作成したDocker Networkが存在すると同じ名前でOrbStack上でDocker Networkを構築することができません。(同じ名前のネットワークが存在しますみたいなエラーが出ます。)
なので、Dockerネットワークを確認し、不要なら削除する
Dockerネットワークの確認
docker network ls
不要なネットワークの削除
docker network rm ~
Dockerコンテナの立ち上げ
各環境でコマンドなどで立ち上げる
*そこは詳細に記載はしないです。
各ローカル環境ごとにコマンド等あるかと思いますので...
他にできることやトラブル解決方法とか
buildxコマンド
Q: docker-buildxってなにか
A: コンテナイメージを作成する際にamd64アーキテクチャ向けイメージだけではなく、arm向けのイメージも作りたい時に使う感じです。
詳細はこちら
こういったコマンドなどは使うことができます。
Docker Desktopで作ったマルチビルドが残ってる
docker buildx rm multibuild
docker buildx create --name multibuild
docker buildx use multibuild
Docker Desktopでマルチビルドを作っていると、OrbStackを起動してもマルチビルドが残っていたりします。
Docker Desktopで作ったマルチが不要なら消すことで、エラーが直ります。
移行してみた感想
migrateしたら普通にOrbStackでも動きました。
移行もかなり楽でした。
商用利用の場合、料金比較等するかと思うので、OrbStackの方が安い可能性もあるかと思うので、検討してみると良いかと思います。
また、30日?はPro仕様で動いてくれるらしいので、お試しで移行チャレンジして、動作問題なければ、本格的に移行でもありかもしれません。
久々にちゃんとした技術記事書きました。
拙い文章ですが、また後で書きます。