|
|
在arm64架构机器上通过Docker离线部署MySQL 8.0.39,需要先准备离线镜像包,再进行部署。以下是详细步骤:
|
|
|
|
|
|
|
|
|
### 一、准备离线镜像(需联网环境)
|
|
|
1. **在有网络的arm64机器上拉取镜像**
|
|
|
```bash
|
|
|
# 拉取arm64架构的mysql:8.0.39(官方镜像已支持多架构,会自动匹配当前架构)
|
|
|
docker pull mysql:8.0.39
|
|
|
```
|
|
|
|
|
|
2. **将镜像导出为离线包**
|
|
|
```bash
|
|
|
# 导出镜像为tar文件
|
|
|
docker save -o mysql_8.0.39_arm64.tar mysql:8.0.39
|
|
|
```
|
|
|
|
|
|
3. **将离线包传输到目标机器**
|
|
|
通过U盘、移动硬盘等方式,将 `mysql_8.0.39_arm64.tar` 复制到需要离线部署的arm64机器上。
|
|
|
|
|
|
|
|
|
### 二、离线部署步骤(目标arm64机器)
|
|
|
1. **加载离线镜像**
|
|
|
```bash
|
|
|
# 加载镜像
|
|
|
docker load -i mysql_8.0.39_arm64.tar
|
|
|
|
|
|
# 验证镜像是否加载成功
|
|
|
docker images | grep mysql
|
|
|
```
|
|
|
|
|
|
2. **创建数据存储目录(可选,用于持久化数据)**
|
|
|
```bash
|
|
|
# 创建数据目录并设置权限
|
|
|
mkdir -p /data/mysql/{data,conf,logs}
|
|
|
chmod -R 777 /data/mysql # 生产环境建议根据实际用户权限调整
|
|
|
```
|
|
|
|
|
|
3. **启动MySQL容器**
|
|
|
```bash
|
|
|
docker run -d \
|
|
|
--name mysql8 \
|
|
|
--restart=always \
|
|
|
-p 3306:3306 \
|
|
|
-v /data/mysql/data:/var/lib/mysql \
|
|
|
-v /data/mysql/conf:/etc/mysql/conf.d \
|
|
|
-v /data/mysql/logs:/var/log/mysql \
|
|
|
-e MYSQL_ROOT_PASSWORD=YourPassword123 \ # 设置root密码
|
|
|
-e TZ=Asia/Shanghai \ # 设置时区
|
|
|
mysql:8.0.39
|
|
|
```
|
|
|
|
|
|
参数说明:
|
|
|
- `-v`:挂载目录,实现数据持久化(容器删除后数据不丢失)
|
|
|
- `-e MYSQL_ROOT_PASSWORD`:必须设置,指定root用户密码
|
|
|
- `--restart=always`:容器随Docker服务自动启动
|
|
|
|
|
|
|
|
|
### 三、验证部署
|
|
|
1. **查看容器状态**
|
|
|
```bash
|
|
|
docker ps | grep mysql8
|
|
|
```
|
|
|
|
|
|
2. **进入容器测试**
|
|
|
```bash
|
|
|
# 进入容器
|
|
|
docker exec -it mysql8 bash
|
|
|
|
|
|
# 登录MySQL
|
|
|
mysql -u root -p
|
|
|
# 输入设置的密码(YourPassword123)
|
|
|
|
|
|
# 验证版本
|
|
|
mysql> select version();
|
|
|
```
|
|
|
|
|
|
|
|
|
### 四、注意事项
|
|
|
1. 确保目标机器是arm64架构:通过 `uname -m` 命令验证,输出应为 `aarch64`。
|
|
|
2. 若需要自定义配置(如字符集、端口等),可在 `/data/mysql/conf` 目录下创建 `my.cnf` 文件,容器会自动加载。
|
|
|
3. 生产环境建议避免使用 `777` 权限,应根据实际运行用户调整目录权限。
|
|
|
4. 如需迁移,只需备份 `/data/mysql` 目录和镜像包,在新机器上重复步骤二即可。
|
|
|
|
|
|
|
|
|
|
|
|
要在arm64架构机器上通过Docker离线部署pgvector(PostgreSQL的向量扩展),需要准备适配arm64的镜像并进行离线迁移。以下是详细步骤:
|
|
|
|
|
|
|
|
|
### 一、准备离线镜像(需联网环境)
|
|
|
1. **拉取arm64架构的pgvector镜像**
|
|
|
官方提供的`pgvector/pgvector`镜像已支持多架构,可直接指定arm64架构拉取:
|
|
|
```bash
|
|
|
# 拉取带pgvector扩展的PostgreSQL镜像(arm64架构)
|
|
|
docker pull --platform linux/arm64 pgvector/pgvector:pg16
|
|
|
```
|
|
|
- 这里以PostgreSQL 16版本为例,也可替换为其他版本(如`pg15`、`pg14`)
|
|
|
|
|
|
2. **导出镜像为离线包**
|
|
|
```bash
|
|
|
docker save -o pgvector_arm64.tar pgvector/pgvector:pg16
|
|
|
```
|
|
|
|
|
|
3. **传输离线包到目标机器**
|
|
|
通过U盘、SCP等方式,将`pgvector_arm64.tar`复制到需要离线部署的arm64机器。
|
|
|
|
|
|
|
|
|
### 二、离线部署步骤(目标arm64机器)
|
|
|
1. **加载离线镜像**
|
|
|
```bash
|
|
|
# 加载镜像
|
|
|
docker load -i pgvector_arm64.tar
|
|
|
|
|
|
# 验证镜像(确认架构为arm64)
|
|
|
docker inspect -f '{{.Architecture}}' pgvector/pgvector:pg16
|
|
|
# 输出应为 "arm64"
|
|
|
```
|
|
|
|
|
|
2. **创建数据持久化目录**
|
|
|
```bash
|
|
|
# 创建数据和配置目录
|
|
|
mkdir -p /data/pgvector/{data,conf,logs}
|
|
|
chmod -R 700 /data/pgvector # PostgreSQL建议使用严格权限
|
|
|
```
|
|
|
|
|
|
3. **启动pgvector容器**
|
|
|
```bash
|
|
|
docker run -d \
|
|
|
--name pgvector \
|
|
|
--restart=always \
|
|
|
-p 5432:5432 \
|
|
|
-v /data/pgvector/data:/var/lib/postgresql/data \
|
|
|
-v /data/pgvector/conf:/etc/postgresql/conf.d \
|
|
|
-v /data/pgvector/logs:/var/log/postgresql \
|
|
|
-e POSTGRES_PASSWORD=YourStrongPassword \ # 设置数据库密码
|
|
|
-e POSTGRES_USER=pguser \ # 自定义用户名(可选)
|
|
|
-e POSTGRES_DB=vectordb \ # 初始化数据库名(可选)
|
|
|
-e TZ=Asia/Shanghai \
|
|
|
pgvector/pgvector:pg16
|
|
|
```
|
|
|
|
|
|
|
|
|
### 三、验证pgvector部署
|
|
|
1. **进入容器并连接数据库**
|
|
|
```bash
|
|
|
# 进入容器
|
|
|
docker exec -it pgvector bash
|
|
|
|
|
|
# 连接PostgreSQL
|
|
|
psql -U pguser -d vectordb
|
|
|
# 输入密码(YourStrongPassword)
|
|
|
```
|
|
|
|
|
|
2. **验证pgvector扩展**
|
|
|
在PostgreSQL终端执行:
|
|
|
```sql
|
|
|
-- 启用pgvector扩展
|
|
|
CREATE EXTENSION vector;
|
|
|
|
|
|
-- 验证扩展是否生效
|
|
|
SELECT * FROM pg_extension WHERE extname = 'vector';
|
|
|
```
|
|
|
若返回包含`vector`的记录,则表示扩展加载成功。
|
|
|
|
|
|
|
|
|
### 四、注意事项
|
|
|
1. **架构兼容性**:通过`uname -m`确认目标机器为`aarch64`(即arm64架构)。
|
|
|
2. **版本选择**:镜像标签`pg16`表示PostgreSQL 16,可根据需求替换为其他版本(需与pgvector兼容)。
|
|
|
3. **数据安全**:生产环境需避免使用`700`以外的宽松权限,建议根据实际用户ID调整目录权限。
|
|
|
4. **自定义配置**:可在`/data/pgvector/conf`目录下创建`postgresql.conf`添加自定义配置(如`shared_buffers`、`max_connections`等)。
|
|
|
|
|
|
通过以上步骤,即可在arm64机器上离线部署带有pgvector扩展的PostgreSQL,用于向量存储和相似度搜索场景。
|
|
|
|
|
|
|
|
|
|
|
|
在arm64架构机器上通过Docker离线部署Nginx并使用自定义配置文件,可按以下步骤操作:
|
|
|
|
|
|
|
|
|
### 一、准备离线镜像(需联网环境)
|
|
|
1. **拉取arm64架构的Nginx镜像**
|
|
|
```bash
|
|
|
# 拉取指定arm64架构的nginx镜像(以最新稳定版为例)
|
|
|
docker pull --platform linux/arm64 nginx:stable
|
|
|
```
|
|
|
|
|
|
2. **导出镜像为离线包**
|
|
|
```bash
|
|
|
docker save -o nginx_arm64.tar nginx:stable
|
|
|
```
|
|
|
|
|
|
3. **传输文件到目标机器**
|
|
|
将离线镜像包 `nginx_arm64.tar` 和你的自定义配置文件 `nginx.conf` 复制到目标arm64机器(可通过U盘、移动硬盘等)。
|
|
|
|
|
|
|
|
|
### 二、离线部署步骤(目标arm64机器)
|
|
|
1. **加载离线镜像**
|
|
|
```bash
|
|
|
# 加载镜像
|
|
|
docker load -i nginx_arm64.tar
|
|
|
|
|
|
# 验证镜像架构(确保为arm64)
|
|
|
docker inspect -f '{{.Architecture}}' nginx:stable
|
|
|
# 输出应为 "arm64"
|
|
|
```
|
|
|
|
|
|
2. **准备配置文件和目录结构**
|
|
|
假设你的自定义 `nginx.conf` 已放在目标机器的 `/root/nginx/conf` 目录(可根据实际路径调整):
|
|
|
```bash
|
|
|
# 创建必要目录(配置、日志、网页根目录)
|
|
|
mkdir -p /root/nginx/{conf,logs,html}
|
|
|
|
|
|
# 将你的nginx.conf放入配置目录(确保文件已传输到目标机器)
|
|
|
# 假设你的nginx.conf在当前目录,移动到配置目录
|
|
|
mv ./nginx.conf /root/nginx/conf/
|
|
|
```
|
|
|
|
|
|
3. **启动Nginx容器(挂载自定义配置)**
|
|
|
```bash
|
|
|
docker run -d \
|
|
|
--name nginx \
|
|
|
--restart=always \
|
|
|
-p 80:80 \ # 映射端口,可根据需要添加443等
|
|
|
-v /root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro \ # 挂载自定义配置(只读)
|
|
|
-v /root/nginx/logs:/var/log/nginx \ # 挂载日志目录
|
|
|
-v /root/nginx/html:/usr/share/nginx/html \ # 挂载网页根目录
|
|
|
nginx:stable
|
|
|
```
|
|
|
|
|
|
|
|
|
### 三、验证部署
|
|
|
1. **查看容器状态**
|
|
|
```bash
|
|
|
docker ps | grep nginx
|
|
|
```
|
|
|
若状态为 `Up` 则表示启动成功。
|
|
|
|
|
|
2. **验证配置是否生效**
|
|
|
```bash
|
|
|
# 进入容器
|
|
|
docker exec -it nginx bash
|
|
|
|
|
|
# 查看加载的配置
|
|
|
cat /etc/nginx/nginx.conf
|
|
|
```
|
|
|
确认内容与你的自定义配置一致。
|
|
|
|
|
|
3. **测试访问**
|
|
|
在机器本地执行 `curl http://localhost`,或从其他机器访问该服务器的80端口,验证Nginx是否按配置工作。
|
|
|
|
|
|
|
|
|
### 四、注意事项
|
|
|
1. **路径权限**:确保宿主机的 `/root/nginx` 目录及子目录有足够权限(建议 `chmod -R 755 /root/nginx`),避免容器内无法读取配置。
|
|
|
2. **配置正确性**:自定义 `nginx.conf` 需符合Nginx语法,可在启动前通过 `nginx -t -c /path/to/nginx.conf` 验证(需在有Nginx环境的机器上)。
|
|
|
3. **端口映射**:根据你的配置文件中的监听端口,在 `docker run` 命令中添加对应的 `-p` 映射(如HTTPS需映射443端口)。
|
|
|
4. **重启配置**:若修改了 `nginx.conf`,需重启容器生效:`docker restart nginx`。
|
|
|
|
|
|
通过以上步骤,即可在arm64机器上离线部署使用自定义配置的Nginx服务。
|
|
|
|
|
|
|
|
|
|
|
|
|