Sign inSign up

flexcdn/cloud-instance

By flexcdn

•Updated 26 days ago

FlexCDN singleton instance.

Image
Networking
Security
Web servers
1

2.9K

flexcdn/cloud-instance repository overview

⁠简介

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

⁠安装

可以使用以下命令安装当前独立实例镜像(代号cloud-instance)和MySQL容器(代号mysql)

curl https://flexcdn.cn/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://flexcdn.cn/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

⁠代理设置

如果脚本在运行 docker compose 时有无法连接、超时等网络异常现象,可以使用代理服务,以下步骤仅供参考(此解决方案参考了 https://stackoverflow.com/questions/69047394/cant-pull-docker-image-behind-a-proxy⁠ ):

⁠步骤1:创建系统服务目录和文件

在当前宿主机创建一个目录 /etc/systemd/system/docker.service.d:

mkdir -p /etc/systemd/system/docker.service.d

创建文件 /etc/systemd/system/docker.service.d/http-proxy.conf 并写入以下内容:

[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80"
Environment="HTTPS_PROXY=https://proxy.example.com:443"
Environment="NO_PROXY=localhost,127.0.0.1,.local"

其中 proxy.example.com:端口 需要换成你自己的代理服务的地址(IP或域名)和端口。

⁠步骤2:重启docker守护进程
systemctl daemon-reload
systemctl restart docker
⁠步骤3:验证代理设置

可以使用 docker info 命令来检查代理设置是否生效:

$ docker info | grep Proxy
HTTP Proxy: http://proxy.example.com:80
HTTPS Proxy: https://proxy.example.com:443
...

如果输入的内容正确,则可以重新运行安装命令了。

⁠CA证书问题

对于 v1.0.9 以前版本的单例容器在调用HTTPS服务时可能产生 failed to verify certificate: x509: certificate signed by unknown authority 类似的证书问题,可以通过以下方式解决:

在宿主机上依次执行以下命令:

# 进入docker bash
docker exec -it cloud-instance bash

# 在docker bash下执行以下命令

# 安装CA证书
apt-get install --reinstall ca-certificates

# 重启cloud-api
cloud-api restart

Tag summary

Content type

Image

Digest

sha256:0fc031510…

Size

417 MB

Last updated

26 days ago

docker pull flexcdn/cloud-instance