补档1:✒️搭建memos——跨平台随笔app-JIN的博客
第二节课(2/3):在大陆安装 Docker & Docker Compose
2.1、执行命令(大陆 VPS )
大多数大陆 VPS 可以 ping 通国外 IP,但无法建立 HTTPS(443端口)连接,这几乎可以确认是:
出站 443 端口被限制或屏蔽 —— 很可能是你的服务商(如腾讯云)限制了访问国际 HTTPS,这是一些云服务器常见的限制策略,尤其是在测试环境或教育网络中。
🛠️ 解决方案
✅ 方案 1:
apt install docker.io -y
apt install docker-compose -y
✅ 方案 2:
sudo curl -fsSL https://gitee.com/tech-shrimp/docker_installer/releases/download/latest/linux.sh| bash -s docker --mirror Aliyun
✅ 方案 3:切换阿里云镜像(推荐)
如果你想使用 Docker 最新版本,可以使用 阿里云源:
# 安装前置组件
apt update
apt install -y ca-certificates curl gnupg lsb-release
# 添加阿里云 GPG Key
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 添加阿里云 Docker 源
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新并安装
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
⚠️ 这不会连接国外服务器,是国内镜像,所以不会被屏蔽。
若出现
E: Failed to fetch https://mirrors.aliyun.com/docker-ce/linux/ubuntu/.../containerd.io_1.7.27-1_amd64.deb Connection timed out
执行下面命令
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin --fix-missing
✅ 方案 4:安装 Ubuntu 源自带的 Docker(不访问国外)
Ubuntu 官方软件源中带有 docker.io
,虽然不是最新版本,但可直接使用:
安装 docker,可以用下面这个方式:
apt install -y docker.io
systemctl enable docker
systemctl start docker
docker --version
安装 docker-compose,可以用下面这个方式:
# 安装 docker-compose 二进制(推荐方式,国内可用)
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.24.6/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose version
第二节课(2.5/3):补充:配置 Docker 日志 & IPv6(进阶优化,可跳过)
2.1 执行命令:
执行后报错可能是主机名不同导致
🛠️ 解决方案
step1:
hostname
step2:
sudo nano /etc/hosts
然后确保文件中包含这一行(如果没有就添加):
127.0.1.1 你的主机名
你的主机名是 hostname
命令执行后显示的就是
补档2:📑halo的设置——待更新
halo的docker-compose.yml 设置
version: "2.4"
services:
halo:
image: halohub/halo:2.6.0
container_name: halo
restart: on-failure:3
depends_on:
halodb:
condition: service_healthy
networks:
- halo_network
volumes:
- ./:/root/.halo2
ports:
- "8090:8090"
command:
- --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
- --spring.r2dbc.username=你的数据库用户名
- --spring.r2dbc.password=你的数据库密码1
- --spring.sql.init.platform=mysql
- --halo.external-url=http://你的公网IP:8090/
- --halo.security.initializer.superadminusername=你的管理员用户名
- --halo.security.initializer.superadminpassword=你的管理员密码1
halodb:
image: mysql:8.0.31
container_name: halodb
restart: on-failure:3
networks:
- halo_network
command:
- --default-authentication-plugin=mysql_native_password
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_general_ci
- --explicit_defaults_for_timestamp=true
volumes:
- ./mysql:/var/lib/mysql
- ./mysqlBackup:/data/mysqlBackup
ports:
- "3306"
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
interval: 3s
retries: 5
start_period: 30s
environment:
- MYSQL_ROOT_PASSWORD=你的数据库密码1
- MYSQL_DATABASE=halo
networks:
halo_network:
评论区