在Mac上操作Docker(不使用Docker Desktop)

本文旨在目标是为了…

    docker desktopを使わずに、macでdocker操作できること

写了的内容,没有写的内容。

    • 目的を達成するまでの手順を書いてある

limaを使ってdocker環境を構築している。limaの操作が書いてある
macでdocker操作できる所までを書いてあるので、dockerを使って何かすることは書いていない

希望这样的人能够阅读

    • docker desktopを使えない人

 

    macユーザー

写这篇文章的原因

    • これまでmacでdockerを使うには、docker desktopをインストールするのが手っ取り早かった

 

    • しかしdocker desktopが有償提供になり、利用できないケースがでてきた

個人利用を除くとdocker desktopは無償利用ができない

docker desktopなしでdockerを使えるようにする記事は多くあったけど情報がありすぎて混乱したので、自分なりに整理したかった

在进行步骤之前先掌握基本知识。

    • dockerが動いている仕組みと、limaというツールの基礎知識があると、後述の手順への理解が深まると思ったので記載した(理解の浅い部分があれば指摘いただると幸いです)

 

    • docker 操作するには、docker clientとdocker server(docker engine)が必要

docker clientはmacでも利用可
docker serverはlinuxマシンでしか動かない

これまでdocker desktop for macがこの辺りをうまいことやってくれていたけど、docker desktopが使えない場合は代替物が必要

limaというツールを使って、mac上にlinuxVMを作成する

docker serverをlimaVMで動かす
lima以外にも方法はあるみたいだけど、記事が豊富なのでlimaを採用。

作业程序

    本題

前提条件(作者的环境)

    mac monterey , v12.4

操作步骤

    1. 在Mac上安装Docker客户端

 

    1. 安装Lima

 

    1. 在Lima上启动虚拟机

 

    从Mac直接操作Docker
在Mac上安装docker客户端 [在Mac上的操作]
    brewインストール
brew install docker
    • インストールされたことを確認

インストールされていればversionが返される

docker -v
在Mac上安装Lima。
    • brewでlimaをインストールする

limaのgetting started
インストールするとlimactl, limaコマンドが使えるようになる

brew install lima
    • インストールされたことを確認する

インストールされていればversionが返ってくるはず

limactl --version
在lima上启动虚拟机[在mac上操作]

VMの設定ファイルをダウンロードする

もろもろ設定済みのVMイメージが公開されている。VMへのdockerインストールが省けてかなり楽

curl https://raw.githubusercontent.com/lima-vm/lima/v0.7.4/examples/docker.yaml > docker_example.yaml
    • [任意] 設定ファイルにVMのスペックを追記する

VMのメモリ、ストレージを設定する
そのままだと、cpus:4, memory:10GiB, disk: 100GiBで立ち上がってしまうので、オーバスペックだと感じる人は編集する

# 以下をdocker_example.yamlに追記(値は任意で変更)
cpus: 2
memory: "2GiB"
disk: "10GiB"
    ダウンロードした設定ファイルを元に、VMを立ち上げる
limactl start docker_example.yaml
    • VMが立ち上がったことを確認する

docker_exampleがリストに表示されていて、ステータスがrunnningになっていればOK

limactl list
    • これでlimaVM上からdocker操作が可能になった

ただ、docker操作するたびにlimaVMにログインすることは面倒

4. 在mac上直接操作docker
    • limaVM上のdocker engineを参照させるためにシンボリックリンクを貼る

docker操作するには、docker clientとdocker server(docker engine)が必要だが、docker serverはVM上にしかない
docker engineを使用するために/var/run/sockを参照するようになっているが、この向き先をlimaVM上で動くdocker.sockに向ける

ln -nfs ~/.lima/docker_example/sock/docker.sock /var/run/docker.sock
    • macからdockerコマンドが使えることを確認する

Client: と Server: Docker Engine – Communityのversionが表示されていればOK。あとは自由にdocker操作を楽しむ。

docker version

给予(常用的limactl、docker指令)一些额外的东西。

    上記でtくったdocker環境を保守していく上で、使いそうなコマンドを残しておくと便利だと思ったので記載

lima命令

    • limaVM停止

limactl stop {VM名}

limaVM削除

limactl delete {VM名}

limaVMの確認

limactl list

Docker 命令

    • docker コンテナの停止

sudo docekr stop {コンテナID}

bannerAds