WSL2 設定 Docker In Docker
🚀 使用主機的 Docker Socket
建立 daemon.json 設定檔
1 | sudo nano /etc/docker/daemon.json |
加入以下設定
1 | { |
執行命令時掛載 docker.sock
1 | docker run -v /var/run/docker.sock:/var/run/docker.sock -ti [Docker 映像檔] |
透過 Curl 執行 Docker Socket 建立 Containers
1 | curl -XPOST --unix-socket /var/run/docker.sock -d '{"Image":"[Docker 映像檔]"}' -H 'Content-Type: application/json' http://localhost/containers/create |
透過 Curl 執行 Docker Socket 啟動 Containers
1 | curl -XPOST --unix-socket /var/run/docker.sock http://localhost/containers/[容器編號]/start |
🚀 使用 docker:dind 映像
可參考以下兩種方法運行 docker:dind 映像
特權模式選項: --privileged
1 | docker run -p [本機連接Port]:2375 --privileged -e DOCKER_TLS_CERTDIR="" --name privileged-docker -d docker:dind |
安裝 Nestybox Sysbox 後,不需要特權模式,即可執行
運行時選項: --runtime=sysbox-runc
1 | docker run -p [本機連接Port]:2375 -e DOCKER_TLS_CERTDIR="" --runtime=sysbox-runc --name sysbox-docker -d docker:dind |
🚀 透過 Docker contexts 連線至 Docker In Docker 執行 Docker 命令
1 | # 建立 Docker contexts |