Closed12
hyperkit + minikubeでdocker試してみる
これ
Replacing Docker Desktop with hyperkit + minikube - Cirrus Minor
hyperkitもminikubeも既に入っていた
❯ minikube start
😄 Darwin 11.3 上の minikube v1.23.0
✨ hyperkitドライバーが自動的に選択されました。他の選択肢: virtualbox, ssh
💿 VM ブートイメージをダウンロードしています...
> minikube-v1.23.0.iso.sha256: 65 B / 65 B [-------------] 100.00% ? p/s 0s
> minikube-v1.23.0.iso: 229.15 MiB / 229.15 MiB [ 100.00% 12.28 MiB p/s 19s
👍 コントロールプレーンのノード minikube を minikube 上で起動しています
💾 Kubernetes v1.22.1 のダウンロードの準備をしています
> preloaded-images-k8s-v12-v1...: 515.04 MiB / 515.04 MiB 100.00% 45.85 Mi
🔥 hyperkit VM (CPUs=2, Memory=6000MB, Disk=20000MB) を作成しています...
❗ This VM is having trouble accessing https://k8s.gcr.io
💡 To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/
🐳 Docker 20.10.8 で Kubernetes v1.22.1 を準備しています...
▪ 証明書と鍵を作成しています...
▪ Control Plane を起動しています...
▪ RBAC のルールを設定中です...
🔎 Kubernetes コンポーネントを検証しています...
▪ イメージ gcr.io/k8s-minikube/storage-provisioner:v5 を使用しています
🌟 有効なアドオン: storage-provisioner, default-storageclass
🏄 完了しました! kubectl が「"minikube"」クラスタと「"default"」ネームスペースを使用するよう構成されました
6GB取られたよ
minikube config set cpus 2
minikube config set memory 4000GB
minikube config set driver hyperkit
❯ minikube config view
- cpus: 2
- driver: hyperkit
- memory: 4000MB
明示的に設定した
minikube docker-env
でdockerの環境変数周り出してくれるんだな
❯ minikube docker-env
minikube docker-env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.64.34:2376"
export DOCKER_CERT_PATH="/Users/korosuke613/.minikube/certs"
export MINIKUBE_ACTIVE_DOCKERD="minikube"
# To point your shell to minikube's docker-daemon, run:
# eval $(minikube -p minikube docker-env)
まずevalする
❯ eval $(minikube docker-env)
docker叩いてみる
~
❯ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
52a670fdf08a 8d147537fb7d "/coredns -conf /etc…" 43 seconds ago Up 41 seconds k8s_coredns_coredns-78fcd69978-9jw49_kube-system_0618c5c9-e5c0-49a7-bf1c-86b4558fabe3_0
ff390db3dcf4 6e38f40d628d "/storage-provisioner" 43 seconds ago Up 42 seconds k8s_storage-provisioner_storage-provisioner_kube-system_41c2ac4e-6c0f-4dd0-a40d-6e65fa2ff284_0
2b2fb8b95afd k8s.gcr.io/pause:3.5 "/pause" 43 seconds ago Up 42 seconds k8s_POD_coredns-78fcd69978-9jw49_kube-system_0618c5c9-e5c0-49a7-bf1c-86b4558fabe3_0
4b5ab4aaacc9 36c4ebbc9d97 "/usr/local/bin/kube…" 44 seconds ago Up 42 seconds k8s_kube-proxy_kube-proxy-pxvbt_kube-system_bd932ca2-06d2-4776-ab0e-48aef1ca7967_0
...
いとも簡単にdocker使えたじゃん。
kubernetes関連コンテナだらけだけど
なんかネットワーク周りがおかしい?
❯ docker pull hello-world
Using default tag: latest
Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on 192.168.64.1:53: read udp 192.168.64.34:42498->192.168.64.1:53: read: connection refused
no_proxyにminikubeのアドレス追加したら行けた
❯ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:7d91b69e04a9029b99f3585aaaccae2baa80bcf318f4a5d2165a9898cd2dc0a1
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
-v
が機能してない?
❯ ls
Dockerfile docker-compose.yaml test.sh
❯ docker run -v $(PWD):/work -it ubuntu bash
root@18d9504d80aa:/# ls /work
root@18d9504d80aa:/#
root@18d9504d80aa:/#
minikube mount
しないといけないらしい
❯ minikube mount $PWD:$PWD
📁 Mounting host path /Users/korosuke613/ghq/github.com/korosuke613/playground/docker/compose into VM as /Users/korosuke613/ghq/github.com/korosuke613/playground/docker/compose ...
▪ マウントタイプ:
▪ ユーザー ID: docker
▪ グループ ID: docker
▪ バージョン: 9p2000.L
▪ メッセージのサイズ: 262144
▪ Permissions: 755 (-rwxr-xr-x)
▪ Options: map[]
▪ アドレスをバインドします: 192.168.64.1:59270
🚀 Userspace file server: ufs starting
✅ Successfully mounted /Users/korosuke613/ghq/github.com/korosuke613/playground/docker/compose to /Users/korosuke613/ghq/github.com/korosuke613/playground/docker/compose
📌 NOTE: This process must stay alive for the mount to be accessible ...
❯ docker run -v $(PWD):/work -it ubuntu bash
root@8f0e6eac359f:/# ls /work
Dockerfile docker-compose.yaml test.sh
-v
使えたっちゃ使えたきたけど
.zshrc
で以下のような処理を書けば良さげか?
- minikubeの起動(
--mount
する)minikube start --mount-string="/Users/$USER/ghq:/Users/$USER/ghq"
-
eval $(minikube docker-env)
の実行 - no_proxyに
minikube ip
を追加
今ならRancher Desktop使うのが良さそう。
このスクラップはCloseする
このスクラップは2022/05/08にクローズされました