Docker On Windows
· 3 min read
安装wsl
此步骤网上资源很多,请自行百度或Google完成
准备工作
配置sudoers
echo "$USER ALL=NOPASSWD: ALL" > "/etc/sudoers.d/$USER"
更换镜像为阿里云镜像
此步骤主要国内访问官方镜像源速度太慢,可以根据自身需求确认是否更换阿里云镜像或者其他镜像
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo echo "" > /etc/apt/sources.list
sudo echo "deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse" >> /etc/apt/sources.list
sudo echo "deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse" >> /etc/apt/sources.list
sudo echo "deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse" >> /etc/apt/sources.list
sudo echo "deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse" >> /etc/apt/sources.list
sudo sudo apt-get update
安装依赖组件
sudo apt install -y curl
安装docker
下面的安装脚来自https://raw.githubusercontent.com/karaage0703/ubuntu-setup/master/install-docker.sh
sudo apt-get -y install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get -y install docker-ce docker-ce-cli containerd.io
sudo apt-get -y install docker-compose-plugin
sudo gpasswd -a $USER docker
sudo usermod -aG docker $USER
启动docker
# 启动
sudo service docker start
# 查看状态
sudo service docker status
测试
# pull nginx
sudo docker pull nginx
# start nginx
sudo docker run -d --name nginx -p 8080:80 nginx
# 容器IP获取
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器名称或ID
curl 172.18.0.1:8080
安装 docker-compose
# 下载二进制
sudo curl -L "https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 增加执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 检查
docker-compose --version
在windows使用docker
安装choco
安装docker-cli
choco install docker-cli
配置Docker TCP访问
-
修改docker.service
sudo vi /lib/systemd/system/docker.service
-
修改ExecStart参数增加 "-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --containerd=/run/containerd/containerd.sock
-
重新加载并启动
sudo systemctl daemon-reload
sudo service docker start
在windows访问container
需要在window和wsl分别设置允许路由转发
WSL
sudo iptables -P FORWARD ACCEPT
Windows
启动路由服务
找到任务管理器 --> 服务 --> 打开服务 --> Routing and Remote Access --> 启动 或者使用管理员执行以下命令
sc start RemoteAccess
添加路由
需要管理员权限执行,更换CONTAINER_IP、WSL_IP 为自己的
route add -P CONTAINER_IP mask 255.255.255.0 WSL_IP