使用Docker安装CDN独立实例

简介

当前镜像CDN独立实例镜像,包含了管理系统(CloudAdmin)、API节点(CloudAPI)、边缘节点(CloudNode)、用户系统(CloudUser,仅专业版以上才能登录)。

安装

可以使用以下命令安装当前独立实例镜像(代号cloud-instance)和MySQL容器(代号mysql,非root用户请使用sudo执行)

curl https://flex.dd.ci/docker/instance/install.sh | bash
执行命令后会自动安装两个容器:

  • cloud-instance - 为cloud-instance容器
  • cloud-mysql - 为mysql容器

然后使用以下网址访问管理系统:

http://宿主机IP:8000
第一次登录的时候,需要设置管理员密码。

使用以下网址访问默认网站(要求80端口不被别的程序占用):

http://宿主机IP

其他可以访问的服务参考本文的“端口号”部分。

容器信息

网络(networks)

容器IP地址:

  • 172.20.0.2 - MySQL容器IP
  • 172.20.0.3 - cloud-instance容器IP

端口号(ports)

  • 8000 - 管理系统端口号
  • 8001 - API grpc端口号
  • 8002 - API HTTP端口号
  • 8100 - 用户系统端口号(只有商业版可以登录)
  • 80 - 边缘节点网站端口号
  • 443 - 边缘节点HTTPS端口号(默认不启动,需要自己进入管理系统设置)

数据目录(volumes)

默认数据目录在 /usr/local/cloud,如果你想修改此目录,可以自行修改compose.yaml。

数据目录下的相关目录说明如下:

  • cache/ - 默认缓存策略设置的缓存目录
  • cloud-admin/ - 管理系统相关数据
  • cloud-api/ - API节点相关数据
  • cloud-node/ - 边缘节点相关数据
  • cloud-user/ - 用户系统相关数据
  • mysql/ - MySQL相关数据

在迁移容器时到新服务器时,你需要将当前数据目录拷贝到新的服务器,然后才能启动容器。

管理容器

查看容器运行状态

docker ps -a

启动和停止

启动容器:

docker start cloud-instance

停止容器:

docker stop cloud-instance

查看日志

docker logs cloud-instance

删除容器

docker stop cloud-instance
docker rm cloud-instance

docker stop cloud-mysql
docker rm cloud-mysql

数据库管理

可以在宿主机上通过以下命令连接数据库:

mysql -uroot -h172.20.0.2 -p
然后输入密码 123456

防火墙

在运行 install.sh 时会自动在宿主机下载并安装一个防火墙服务,名称为 cloud-firewall-server,以便于容器可以通过利用此服务器来封禁IP。

此防火墙可以在 https://github.com/tjbrains/cloud-firewall-server 单独下载,独立启动命令:

cloud-firewall-server -addr=ADDR地址

要想在节点中使用此防火墙服务,需要在compose.yaml中配置 CLOUD_HTTP_FIREWALL_ENDPOINT,在官网提供的 compose.yaml 中已经加入此变量。

compose.yaml示例

如果你想修改数据库初始密码、数据目录等,可以在 https://flex.dd.ci/docker/instance/compose.yaml 查看compose.yaml示例。

compose.yaml变量说明:

  • DATA_PREFIX=/usr/local/cloud - 数据目录
  • NETWORK_PREFIX=172.20.0 - 网络IP前缀
  • DB_NAME=clouds - 数据库名称
  • DB_PASSWORD=123456 - 数据库密码

可以在和 compose.yaml 同个目录下的 .env 文件中设置这些变量,然后再在此目录下执行:

docker compose up -d