← 返回文章
2 分钟阅读

阿里云安装Docker和Tailscale及遇到的问题

本文记录了如何安装docker 和使用国内源安装Tailscale及解决Tailscale和阿里云内网DNS冲突问题 Docker Docker直接使用阿里云给的教程安装 1 更新您的包管理工具: 2 添加阿里云源到您的实例中 这个源包含D

本文记录了如何安装docker 和使用国内源安装Tailscale及解决Tailscale和阿里云内网DNS冲突问题。

Docker

Docker直接使用阿里云给的教程安装 1.更新您的包管理工具:

sudo apt-get update

2.添加阿里云源到您的实例中,这个源包含Docker软件包,方便您使用命令来安装和更新Docker。

sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo apt-key add -
sudo add-apt-repository -y "deb [arch=$(dpkg --print-architecture)] https://mirrors.aliyun.com/docker-ce/linux/debian $(lsb_release -cs) stable"
```txt
sudo apt-get update

3.安装Docker社区版本,容器运行时containerd.io,以及Docker构建和Compose插件:

sudo apt-get -y install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

4.启动Docker并设置Docker守护进程在系统启动时自动启动,这样可以确保每次系统启动时,Docker服务也会自动启动:

sudo systemctl start docker
sudo systemctl enable docker

5.阿里云容器镜像服务ACR提供了官方的镜像加速器,从而加速官方镜像的下载:

  • 登录容器镜像服务控制台,在左侧导航栏选择镜像工具 > 镜像加速器,在镜像加速器页面获取加速器地址。
  • 创建并编辑/etc/docker/daemon.json文件(如果文件不存在,则创建):

    {
      "registry-mirrors": ["<镜像加速器地址>"]
    }
  • 重启Docker使配置生效。

    ```txt

sudo systemctl restart docker


Tailscale
---------

[官方教程](https://tailscale.com/kb/1031/install-linux),选择对应的版本进行安装,不使用一键安装脚本,比如我是Debian12
1.添加 Tailscale 的软件包签名密钥和存储库:

curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null curl -fsSL https://pkgs.tailscale.com/stable/debian/bookworm.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list


2.使用中科大的镜像,给Tailscale加速:

sudo sed -i ‘s,pkgs.tailscale.com/stable,mirrors.ustc.edu.cn/tailscale,g’ /etc/apt/sources.list.d/tailscale.list


3.安装Tailscale:

sudo apt-get update sudo apt-get install tailscale sudo tailscale up


4.解决Tailscale与阿里云内网DNS冲突
[参考教程](https://nyan.im/p/troubleshoot-tailscale) 运行 `iptables -S`,找到和Tailscale相关的有如下几条
![解决阿里云内网冲突](/media/legacy/96edf86673-oaRlJZ.png)
下面这条规则drop掉了整个IP段的数据包,使用iptables -D 删除规则

-A ts-input -s 100.64.0.0/10 ! -i tailscale0 -j DROP


找规则编号:

iptables -L ts-input —line-numbers

root@cn-pek-aliyun:~# iptables -L ts-input —line-numbers Chain ts-input (1 references) num target prot opt source destination 1 ACCEPT all — cn-pek-aliyun anywhere 2 RETURN all — 100.115.92.0/23 anywhere 3 DROP all — 100.64.0.0/10 anywhere 4 ACCEPT all — anywhere anywhere 5 ACCEPT udp — anywhere anywhere udp dpt:41641


运行以下命令,根据编号删除规则:

iptables -D ts-input 3


此时去ping 阿里云内网域名是可以ping通的。

PUBLISHED BY

Leon Zhang

记录技术实践与日常思考。写得慢一点,但尽量让内容留得久一点。

About
me