分类 乱七杂八 下的文章

本文将指导如何在 Debian 11 和 Ubuntu 22.04 下安装 Docker 以及 Docker Compose。

PS:本文同时适用于 Debian 10 Buster 以及 Ubuntu 20.04 Focal

什么是 Docker?
Docker 是一种容器化技术,可以在服务器上快速搭建容器并在不污染宿主机的情况下运行软件,而不再需要安装配置各种环境。开源 Docker 社区致力于改进这类技术,并免费提供给所有用户,使之获益。

什么是 Docker Compose?
传统模式下运维人员需要运行 docker run 来启动各种容器,一旦容器过多,就无法一次性记住所有的运行参数和命令,这时候我们可以使用 Docker Compose 来解决这个问题。

Docker Compose 是一种工具,用于帮助定义和共享多容器应用程序。 通过 Compose,你可以创建 YAML 文件来定义服务,并且只需一个命令,就可以启动或清理所有内容。使用 Compose 的巨大优点是,你可以在文件中定义应用程序堆栈,使其位于项目存储库的根目录下(它现在受版本控制),并方便其他人参与你的项目。 其他人只需克隆你的存储库即可开始撰写应用。 事实上,你可能会看到 GitHub/GitLab 上的很多项目现在都是这样做的。(via 使用 Docker Compose)

使用官方源安装 Docker
以下操作需要在 root 用户下完成,请使用 sudo -i 或 su root 切换到 root 用户进行操作。

首先,安装一些必要的软件包:

apt update
apt upgrade -y
apt install curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates
然后加入 Docker 的 GPG 公钥和 apt 源:

Debian
Ubuntu

curl -sSL https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://download.docker.com/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list
国内机器可以用清华 TUNA的国内源:

Debian
Ubuntu

curl -sS https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker-ce.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-ce.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian $(lsb_release -sc) stable" > /etc/apt/sources.list.d/docker.list
然后更新系统后即可安装 Docker CE:

apt update
apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
此时可以使用 docker version 命令检查是否安装成功:

root@debian ~ # docker version
Client: Docker Engine - Community
Version: 20.10.22
API version: 1.41
Go version: go1.18.9
Git commit: 3a2c30b
Built: Thu Dec 15 22:28:22 2022
OS/Arch: linux/amd64
Context: default
Experimental: true

Server: Docker Engine - Community
Engine:
Version: 20.10.22
API version: 1.41 (minimum version 1.12)
Go version: go1.18.9
Git commit: 42c8b31
Built: Thu Dec 15 22:26:14 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.14
GitCommit: 9ba4b250366a5ddde94bb7c9d1def331423aa323
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
如果需要某个特定用户可以用 Docker rootless 模式运行 Docker,那么可以把这个用户也加入 docker 组,比如我们把 www-data 用户加进去:

apt install docker-ce-rootless-extras
sudo usermod -aG docker www-data
安装 Docker Compose
因为我们已经安装了 docker-compose-plugin,所以 Docker 目前已经自带 docker compose 命令,基本上可以替代 docker-compose:

root@debian ~ # docker compose version
Docker Compose version v2.14.1
如果某些镜像或命令不兼容,则我们还可以单独安装 Docker Compose:

我们可以使用 Docker 官方发布的 Github 直接安装最新版本:

curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-Linux-x86_64 > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
此时可以使用 docker-compose version 命令检查是否安装成功:

root@debian ~ # docker-compose version
Docker Compose version v2.14.2
修改 Docker 配置
以下配置会增加一段自定义内网 IPv6 地址,开启容器的 IPv6 功能,以及限制日志文件大小,防止 Docker 日志塞满硬盘(泪的教训):

cat > /etc/docker/daemon.json << EOF
{

"log-driver": "json-file",
"log-opts": {
    "max-size": "20m",
    "max-file": "3"
},
"ipv6": true,
"fixed-cidr-v6": "fd00:dead:beef:c0::/80",
"experimental":true,
"ip6tables":true

}
EOF
然后重启 Docker 服务:

systemctl restart docker
好了,我们已经安装好了 Docker 和 Docker Compose,然后就可以开始愉快的安装各种软件,限于篇幅,我们不再赘述,今后慢慢介绍安装各种 Docker 软件的方法。

修改配置
1.先选择从浏览器打开ssh连接服务器
连接登录成功后,输入以下命令

sudo -i #切换到root
passwd #修改密码
然后会要求输入新密码,然后再重复一次密码,输入密码的时候不会显示出来,所以直接输入密码,然后回车,再然后重复输入密码回车。

修改root密码完成

2.接着修改SSH配置文件/etc/ssh/sshd_config

vi /etc/ssh/sshd_config #编辑文件
找到以下内容并修改

PermitRootLogin yes //默认为no,需要开启root用户访问改为yes
PasswordAuthentication yes //默认为no,改为yes开启密码登陆
修改完成后,再下按 esc 键,然后再输入

:wq #保存并退出
3.最后重启下服务器即可

reboot #重启服务器

更新说明:更新v5.1.13版本主控

cdnfly自建云端搭建方法:

用以下源码搭建一个站点,绑定域名auth.cdnfly.cn、monitor.cdnfly.cn,注意需要配置伪静态:
https://vkceyugu.cdn.bspapp.com/VKCEYUGU-10b3891b-be67-4103-a60f-9da1d057470c/b46c7891-1c1a-486e-96f5-a47daa1f8535.zip

cdnfly主控安装方法:

修改hosts,将 auth.cdnfly.cn、monitor.cdnfly.cn 这2个域名指向刚才的自建云端服务器IP

执行以下命令安装主控:
curl http://auth.cdnfly.cn/master.sh -o master.sh && chmod +x master.sh && ./master.sh --es-dir /home/es
复制代码

已安装过官方版的破解方法:

修改hosts,将 auth.cdnfly.cn、monitor.cdnfly.cn 这2个域名指向刚才的自建云端服务器IP

执行以下命令完成破解:
wget http://auth.cdnfly.cn/cdnfly/api.py -O /opt/venv/lib/python2.7/site-packages/requests/api.py
supervisorctl -c /opt/cdnfly/master/conf/supervisord.conf reload
复制代码

云端节点监控功能说明:

监控默认是使用云端服务器去请求CDN节点,因此要保持云端和CDN节点之间的网络畅通。另外如果是用宝塔面板,php不要安装bt_safe扩展,否则无法使用tcp类型监控;如果要用ping类型监控,还需要允许exec函数。
支持多节点监控(和官方一样),要添加其它监控节点,可以编辑config.php配置文件,根据里面的注释说明添加。

Azure 里的 linux 模板应该是通过了 sshd_config 文件禁用了 Root 登陆,我们只需重新开启即可。

sudo su
vim /etc/ssh/sshd_config

# 在 sshd_config 文件里的 “Authentication” 部分加上以下内容
PermitRootLogin yes
# 完成以后退出 vim 并保存

service sshd restart # 重启 ssh 服务以应用更改
passwd root # 直接修改 Root 用户的密码

这样重新登陆 ssh 就可以用 Root 登陆了。

最近在Mac上使用Telegram时,发现无法正常连接,无论是PAC还是全局均无效

解决步骤如下:

选择 Proxy 为 Socks5 模式,服务器地址填 127.0.0.1 端口填 7890 (clash内核一般都为7890,其他自行查看)

然后再telegram填写此代理即可