You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

8.6 KiB

在arm64架构机器上通过Docker离线部署MySQL 8.0.39,需要先准备离线镜像包,再进行部署。以下是详细步骤:

一、准备离线镜像(需联网环境)

  1. 在有网络的arm64机器上拉取镜像

    # 拉取arm64架构的mysql:8.0.39(官方镜像已支持多架构,会自动匹配当前架构)
    docker pull mysql:8.0.39
    
  2. 将镜像导出为离线包

    # 导出镜像为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. 加载离线镜像

    # 加载镜像
    docker load -i mysql_8.0.39_arm64.tar
    
    # 验证镜像是否加载成功
    docker images | grep mysql
    
  2. 创建数据存储目录(可选,用于持久化数据)

    # 创建数据目录并设置权限
    mkdir -p /data/mysql/{data,conf,logs}
    chmod -R 777 /data/mysql  # 生产环境建议根据实际用户权限调整
    
  3. 启动MySQL容器

    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. 查看容器状态

    docker ps | grep mysql8
    
  2. 进入容器测试

    # 进入容器
    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离线部署pgvectorPostgreSQL的向量扩展需要准备适配arm64的镜像并进行离线迁移。以下是详细步骤

一、准备离线镜像(需联网环境)

  1. 拉取arm64架构的pgvector镜像
    官方提供的pgvector/pgvector镜像已支持多架构可直接指定arm64架构拉取

    # 拉取带pgvector扩展的PostgreSQL镜像arm64架构
    docker pull --platform linux/arm64 pgvector/pgvector:pg16
    
    • 这里以PostgreSQL 16版本为例也可替换为其他版本pg15pg14
  2. 导出镜像为离线包

    docker save -o pgvector_arm64.tar pgvector/pgvector:pg16
    
  3. 传输离线包到目标机器
    通过U盘、SCP等方式pgvector_arm64.tar复制到需要离线部署的arm64机器。

二、离线部署步骤目标arm64机器

  1. 加载离线镜像

    # 加载镜像
    docker load -i pgvector_arm64.tar
    
    # 验证镜像确认架构为arm64
    docker inspect -f '{{.Architecture}}' pgvector/pgvector:pg16
    # 输出应为 "arm64"
    
  2. 创建数据持久化目录

    # 创建数据和配置目录
    mkdir -p /data/pgvector/{data,conf,logs}
    chmod -R 700 /data/pgvector  # PostgreSQL建议使用严格权限
    
  3. 启动pgvector容器

    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. 进入容器并连接数据库

    # 进入容器
    docker exec -it pgvector bash
    
    # 连接PostgreSQL
    psql -U pguser -d vectordb
    # 输入密码YourStrongPassword
    
  2. 验证pgvector扩展
    在PostgreSQL终端执行

    -- 启用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_buffersmax_connections等)。

通过以上步骤即可在arm64机器上离线部署带有pgvector扩展的PostgreSQL用于向量存储和相似度搜索场景。

在arm64架构机器上通过Docker离线部署Nginx并使用自定义配置文件可按以下步骤操作

一、准备离线镜像(需联网环境)

  1. 拉取arm64架构的Nginx镜像

    # 拉取指定arm64架构的nginx镜像以最新稳定版为例
    docker pull --platform linux/arm64 nginx:stable
    
  2. 导出镜像为离线包

    docker save -o nginx_arm64.tar nginx:stable
    
  3. 传输文件到目标机器
    将离线镜像包 nginx_arm64.tar 和你的自定义配置文件 nginx.conf 复制到目标arm64机器可通过U盘、移动硬盘等

二、离线部署步骤目标arm64机器

  1. 加载离线镜像

    # 加载镜像
    docker load -i nginx_arm64.tar
    
    # 验证镜像架构确保为arm64
    docker inspect -f '{{.Architecture}}' nginx:stable
    # 输出应为 "arm64"
    
  2. 准备配置文件和目录结构
    假设你的自定义 nginx.conf 已放在目标机器的 /root/nginx/conf 目录(可根据实际路径调整):

    # 创建必要目录(配置、日志、网页根目录)
    mkdir -p /root/nginx/{conf,logs,html}
    
    # 将你的nginx.conf放入配置目录确保文件已传输到目标机器
    # 假设你的nginx.conf在当前目录移动到配置目录
    mv ./nginx.conf /root/nginx/conf/
    
  3. 启动Nginx容器挂载自定义配置

    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. 查看容器状态

    docker ps | grep nginx
    

    若状态为 Up 则表示启动成功。

  2. 验证配置是否生效

    # 进入容器
    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服务。