Skip to main content

One post tagged with "Docker"

View All Tags

Docker On Windows

· 3 min read
Qiang Ma

安装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