下载安装

附件

随着云计算及云原生的发展,Docker 基本上成了事实上的部署方式。对于运维来讲,使用 Docker 镜像非常简单(当然制作 Docker 镜像还是有些门槛);对于开发来讲,可以快速搭建和切换开发环境,也可以很好地保持开发环境和生产环境的一致性。XSwitch 目前仅提供 Docker 镜像的部署方式。为照顾不熟悉 Docker 的用户,本文提供一些 Docker 安装参考。如果你还不熟悉 Docker,可以先阅读Docker 简介及常用命令,读完了别忘了回来。

Docker 安装

如果你使用 Ubuntu 或者 Debian Linux 等操作系统,可以使用如下命令一键安装(通过--mirror参数使用阿里云的镜像速度会快一些):

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

或使用 DaoCloud 提供的一键安装方式:

curl -sSL https://get.daocloud.io/docker | sh

上述安装过程适用于在开发环境下安装,如果是生产环境,建议参考官方的安装文档 https://docs.docker.com/engine/install/debian/ 进行安装。

在 macOS 和 Windows 上,推荐安装 Docker Desktop 版本。比如,在 Windows 上,可以从 https://docs.docker.com/desktop/install/windows-install/ 下载 Docker Desktop on Windows 安装包,然后双击安装即可。该版本有两个后端可选,一个是 Hyper-V,一个是 WSL 2。两种后端都有各自的优缺点和适应的情况,官方没有特别推荐哪一种方式更好,不过,笔者倒是建议先尝试使用 WSL 2 后端,如果有问题再换到 Hyper-V。

安装完成后,可以在 PowerShell 中输入docker run --rm hello-world来测试一下是否安装成功。

在 Windows 上,还有另外一种安装方式,那就是先用 WSL 安装 Debian(或 Ubuntu),再在 Debian 里面按照上面讲的 Debian 上的方法安装 Docker。

在 macOS 上,可以从 https://docs.docker.com/desktop/install/mac-install/ 下载 Docker Desktop for macOS 安装包,该安装包有两个版,分别是基于 Intel CPU 的和基于 Apple Silicon CPU 的,根据自己使用的 CPU 选择即可。下载安装包后,双击节安装包,在打开的窗口中将 Docker 图标拖到 Applications 文件夹中即可。

Orbstack 是 macOS 上的 Docker Desktop 的替代品,比后者更轻量级,界面也简洁,非常好用,笔者一直使用它。它使用类似 WSL 的集成方式,支持安装 Linux 虚拟机 和 Docker。目前对个人使用是免费的。

不同系统上具体的安装方法不同,也有不少细节,下面再提供一些安装方式,供参考。

在 Debian 上安装 Docker

参考官方的安装文件,需要安装 Docker Engine 和 Docker Compose(如果非 root 用户请在命令前加 sudo),如下:

apt-get remove docker docker-engine docker.io containerd runc
apt-get update
apt-get install ca-certificates curl gnupg lsb-release
mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

安装完可以用docker versiondocker compose version命令查看是否安装成功。

最新版的 Docker Compose 是 Docker CLI 的一部分,命令执行方式改为 docker compose,与旧版docker-compose可在服务器上并存。两者的具体区别可参见 https://docs.docker.com/compose/cli-command-compatibility

在 Windows 上安装 Docker

在 Windows 上安装 Docker 有几种方式:

  • 通过 WSL 2 安装 Debian(或 Ubuntu),再在 Debian 里面安装 Docker Engine。
  • 直接安装 Docker Desktop,这种方式是 Windows 原生的安装方式。
  • 安装虚拟机,在虚拟机里安装 Linux,再在 Linux 里安装 Docker(套娃)。

第一种方法实际上跟在上面讲的在 Debian 中的安装方式一样,也是我们强烈建议使用的方式,它可以提供更好的性能,使用起来也非常方便。唯一有点难以理解的是网络的配置。第二种方式也需要依赖 WSL,有图形界面,不过也没什么大用,不推荐。第三种方式占用资源比较多,不过它支持桥接网络,对于新手来说可能更容易理解和配置,但也不推荐使用。

安装 WSL 2

在前两种方式下,Docker 依赖 WSL。WSL(Windows Subsystem for Linux,适用于 Linux 的 Windows 子系统)是微软公司推出的一种在 Windows 上运行 Linux 的技术。WSL 有两个版本,我们推荐 WSL 2。关于两个版本的区别,可以参考微软的官方文档 WSL 2

要安装 WSL 2,从 Windows 开始菜单启动启动 Windows Terminal,然后在 Windows Terminal 中输入以下命令安装 Linux 发行版:

wsl --install -d Debian

完成后,使用“开始”菜单打开 Debian。 系统将要求你为 Linux 发行版创建“用户名”和“密码”。

更多 WSL 命令或者使用信息,请参考官方文档

安装完 WSL 2 后,在终端上使用 wsl 命令,就可以进入 Debian 系统了,非常方便。然后,就可以按照 Debian 上的安装方法来安装 XSwitch。不过,以此需要注意的是,在 WSL 中,默认会把 Windows 的 C 盘映射(mount)到 /mnt/c 目录下。Windows 上的目录并没有属主,大小写区分等信息,所以,安装 XSwitch(以及 PostgreSQL)需要在 Linux 原生目录下进行。可以通过,cd 命令切换到家目录中,也可以将 XSwitch 安装到 /opt//usr/local/ 目录下。大部分步骤都可以以普通用户操作,但启动 Docker 等还需要 root 权限(可以通过 susudo 获得 root 权限)。

安装完成后,通过 http://localhost:8081,或者 http://{ip}:8081 访问 XSwitch。在此,{ip} 为 WSL 的 IP 地址,可以在 WSL 中通过 ip addr 命令查看(一般以 172. 开头)。

如果一切正常,就可以使用本机的 SIP 终端来访问完整的 XSwitch 服务。默认情况下,WSL 的网络只有本机才能访问,如果需要在局域网上的其他 SIP 终端访问,可以参考下文的网络模式部分进一步配置。

Docker Desktop

Windows 环境可以选择安装 Docker Desktop, 其中包含了 Docker Engine 、 Docker CLI 、 Docker Compose 等应用,并且还提供了一个简单的 GUI(图形用户界面),让您可以直接从您的机器管理您的容器、应用程序和镜像。

安装前提

  • 需要安装 1.1.3.0 或更高版本的 WSL 2 。
  • Windows 11 64 位:家庭版或专业版 21H2 或更高版本,或者企业版或教育版 21H2 或更高版本。
  • Windows 10 64 位:
    • 建议使用 Home 或 Pro 22H2(内部版本 19045)或更高版本,或者 Enterprise 或 Education 22H2(内部版本 19045)或更高版本。
    • 最低要求是家庭版或专业版 21H2(内部版本 19044)或更高版本,或者企业版或教育版 21H2(内部版本 19044)或更高版本。
  • 在 Windows 上打开 WSL 2 功能。
  • 硬件要求:
    • 64 位处理器
    • 4GB 系统内存
    • 在 BIOS 中启用硬件虚拟化

下载安装包

点击下载 Docker Desktop,并按照安装说明进行操作。

启动

安装后,从 Windows 开始菜单启动 Docker Desktop,然后从任务栏的隐藏图标菜单中选择 Docker 图标。 右键单击该图标以显示 Docker 命令菜单,然后选择“设置”。

修改配置

确保在“设置”>“常规”中选中“使用基于 WSL 2 的引擎”。 通过转到“设置”>“资源”>“WSL 集成”,从要启用 Docker 集成的已安装 WSL 2 发行版中进行选择。

安装后确认

若要确认已安装 Docker,在 Windows Terminal 中输入 docker --version 来显示版本和内部版本号。

网络模式

在 Windows 上,使用 Docker Desktop 运行的容器使用 NAT 网络模式,通过这种模式,可以让局域网上的机器访问到容器内的服务,如 XSwitch。

XSwitch 需要的网络比较复杂,需要开通好多 TCP 和 UDP 端口,在使用时要注意。

如果使用第一种方式安装的 Docker(在 WSL 2 上安装的 Debian 里面安装的 Docker Engine),可以在 Debian 里使用 Host 网络模式运行容器,在宿主机上可以正常访问,但是,在局域网上其他机器上访问就比较复杂。

如果你安装 Docker 后只是在本地(Windows 宿主机上)测试和开发 XSwitch,则两种安装方式没什么不同。但如果你想在局域网上访问 XSwich 服务,且是使用第一种方式安装的 Docker,则需要做一些额外的配置,具体可以参考下面的 WSL 2 镜像模式相关配置。

WSL 2 镜像模式

启用镜像模式会将 WSL 更改为全新的网络体系结构, 它会将 Windows 上的网络接口“镜像”到 Linux 中。

启用方式如下:

  1. 在 Windows 的 %UserProfile% 目录(如 C:\Users\你的用户名)下创建 .wslconfig 文件
  2. 在 .wslconfig 文件中添加以下内容:
[experimental]
autoMemoryReclaim=gradual
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true
sparseVhd=true
hostAddressLoopback=true
  1. 在 Windows Terminal 中输入以下命令,停止 Linux
wsl --shutdown
  1. 在 Windows Terminal 中输入以下命令,重新启动 Linux
wsl
  1. 在 Windows Terminal 中输入以下命令,查看是否启用成功
ip addr

检查其网络接口是否为 Windows 的网络接口,是的话表示启用成功。

知道自己在哪里

Docker 很好用,也很强大。但强大往往意味着复杂。当你面对黑乎乎的命令行想输入一条命令时,首先要清楚自己在哪里。

如果你是在 Linux 上,你可能处于你 Linux 宿主机的 Shell 下,或者,通过 docker exec 命令进入的容器中的 Shell 里。

如果你在 Windows 上,环境就更复杂一些。1)你可能位于 Windows 的终端命令行环境里,2) 或者,通过 wsl 命令进入一个 Linux 子系统里(就是 WSL 内部),3) 还可能在 Linux 子系统中,又通过 docker exec 命令进入的容器中的 Shell 里。

如果你不幸迷路了。任何时候你都可以回到起点,重新进 :)。

更多参考

以下链接上列出了各操作系统上 Docker 的安装方法:

下面几个链接上也有中文的安装说明,内容有些旧,仅供参考。

以下地址上有更多参考链接:

https://github.com/rts-cn/xswitch-free

安装旧版本 docker-compose

有时候,可能需要旧版本的docker-compose。如果您需要安装旧版的docker-compose,以下命令供参考:

curl -L https://get.daocloud.io/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
重装