Skip to content

Instantly share code, notes, and snippets.

@wtnbgo
Last active January 29, 2024 16:35
Show Gist options
  • Save wtnbgo/0b5040250aefed6937b1a7b3f2ba6dfe to your computer and use it in GitHub Desktop.
Save wtnbgo/0b5040250aefed6937b1a7b3f2ba6dfe to your computer and use it in GitHub Desktop.
WSL2の Docker に WIndows から直接アクセスする手順

WSL2の Docker に Windows から直接アクセスする手順

Linxu側準備

Linux 側で Docker のポートを準備しておく

古い方式

docker のオプションとして直接指定

/etc/docker/daemon.json

{
    "hosts": [
        "tcp://127.0.0.1:2375",
        "unix:///var/run/docker.sock"
    ],
    "tls": false
}

この書き方は sytemd で socket activation を使う記述だと、 docker.service で指定されてる -H fd:// と競合してエラーになる

systemd で socket 定義

標準で docker.socket で /run/docker.sock の定義が存在してる形になっているので、 別途 TCPの socket 定義を systemd に追加して対応する

cd /lib/systemd/system/ sudo vim docker-tcp.socket

[Unit]
Description=Docker Socket for the API
PartOf=docker.service

[Socket]
ListenStream=127.0.0.1:2375
Service=docker.service

[Install]
WantedBy=sockets.target
systemctl daemon-reload
systemctl stop docker.service
systemctl enable docker-tcp.socket
systemctl start docker-tcp.socket
systemctl start docker.service

WIN版クライアント準備

WIN版クライアントを入手

https://download.docker.com/win/static/stable/x86_64/

unzip -j docker-24.0.6.zip docker/docker.exe

パスの通ったところに配置する

コンテキストを作成して指定

docker context create remote --docker 'host=tcp://localhost:2375'
docker context use remote
docker version
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment