首页
关于
壁纸
直播
留言
友链
统计
Search
1
《三国志英杰传》攻略
6,129 阅读
2
Emby客户端IOS破解
5,995 阅读
3
白嫖Emby
5,979 阅读
4
《吞食天地1》金手指代码
5,275 阅读
5
破解emby-server
4,239 阅读
moonjerx
game
age-of-empires
zx3
san-guo-zhi
尼尔:机械纪元
net
emby
learn-video
docker
torrent
photoshop
route
minio
git
ffmpeg
im
vue
gitlab
typecho
svn
alipay
nasm
srs
mail-server
tailscale
kkfileview
aria2
webdav
synology
redis
oray
chemical
mxsite
math
π
x-ui
digital-currency
server
nginx
baota
k8s
http
cloud
linux
shell
database
vpn
esxi
rancher
domain
k3s
ewomail
os
android
windows
ios
app-store
macos
develop
java
javascript
uniapp
nodejs
hbuildx
maven
android-studio
jetbrain
jenkins
css
mybatis
php
python
hardware
hard-disk
pc
RAM
software
pt
calibre
notion
office
language
literature
philosophy
travel
登录
Search
标签搜索
ubuntu
mysql
openwrt
zerotier
springboot
centos
openvpn
jdk
吞食天地2
synology
spring
idea
windows11
吞食天地1
transmission
google-play
Japanese
xcode
群晖
kiftd
MoonjerX
累计撰写
375
篇文章
累计收到
464
条评论
首页
栏目
moonjerx
game
age-of-empires
zx3
san-guo-zhi
尼尔:机械纪元
net
emby
learn-video
docker
torrent
photoshop
route
minio
git
ffmpeg
im
vue
gitlab
typecho
svn
alipay
nasm
srs
mail-server
tailscale
kkfileview
aria2
webdav
synology
redis
oray
chemical
mxsite
math
π
x-ui
digital-currency
server
nginx
baota
k8s
http
cloud
linux
shell
database
vpn
esxi
rancher
domain
k3s
ewomail
os
android
windows
ios
app-store
macos
develop
java
javascript
uniapp
nodejs
hbuildx
maven
android-studio
jetbrain
jenkins
css
mybatis
php
python
hardware
hard-disk
pc
RAM
software
pt
calibre
notion
office
language
literature
philosophy
travel
页面
关于
壁纸
直播
留言
友链
统计
搜索到
46
篇与
docker
的结果
2025-02-22
使用 Docker 部署 Ollama 与 Open WebUI 完整指南
基于 DeepSeek-R1 模型的本地化部署方案前言本文详细介绍如何通过 Docker 快速搭建支持 GPU 加速的 Ollama 服务,并集成 Open WebUI 实现可视化交互界面。方案完整支持:✅ 多 GPU 并行计算✅ 模型持久化存储✅ 企业级权限管理✅ 中英文双语支持前置准备硬件要求NVIDIA 显卡(显存 ≥8GB,推荐 RTX 3060 以上)内存 ≥16GB磁盘空间 ≥50GB软件依赖# 安装 Docker 和 NVIDIA 容器工具包 sudo apt-get update sudo apt-get install -y docker.io nvidia-container-toolkit sudo systemctl restart docker # 验证 GPU 支持 docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi如果报错:sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit Hit:1 http://hk.archive.ubuntu.com/ubuntu jammy InRelease Hit:2 http://hk.archive.ubuntu.com/ubuntu jammy-updates InRelease Hit:3 http://hk.archive.ubuntu.com/ubuntu jammy-backports InRelease Hit:4 http://hk.archive.ubuntu.com/ubuntu jammy-security InRelease Reading package lists... Done Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package nvidia-container-toolkit你的系统中可能未正确添加 NVIDIA Container Toolkit 的软件源。请按以下步骤操作:解决方案如下:添加 NVIDIA 官方源和密钥# 安装依赖 sudo apt-get install -y curl # 添加 GPG 密钥 curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - # 添加仓库(注意系统代号匹配) distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list更新并安装sudo apt-get update sudo apt-get install -y nvidia-container-toolkit验证安装nvidia-ctk --version常见问题排查:如果系统代号不匹配(如 Ubuntu 22.04 应为 ubuntu22.04),可手动替换上述命令中的 $distribution若仍报错,尝试清理缓存:sudo rm -rf /var/lib/apt/lists/* sudo apt-get update替代方案(若网络受限):# 通过 NVIDIA Docker 仓库安装 sudo apt-get install -y nvidia-docker2 sudo systemctl restart docker部署流程1. 部署 Ollama 服务# 创建持久化存储目录 mkdir -p ~/ollama_storage # 启动 Ollama 容器 docker run -d --name=ollama \ --gpus=all \ --restart unless-stopped \ -p 30037:11434 \ -v /home/$USER/dockerfile/ollama/data:/root/.ollama \ ollama/ollama # 下载 DeepSeek-R1 模型 docker exec -it ollama ollama run deepseek-r1:7b如果运行容器报错:xdboy@xdserver:~$ docker run -d --name=ollama \ --gpus=all \ --restart unless-stopped \ -p 30037:11434 \ -v /home/$USER/dockerfile/ollama/data:/root/.ollama \ ollama/ollama Unable to find image 'ollama/ollama:latest' locally latest: Pulling from ollama/ollama d9802f032d67: Pull complete 161508c220d5: Pull complete 6b78c8d09c74: Pull complete e0c387d586cc: Pull complete Digest: sha256:82956f40bb1f307c77f7a8c3ed91c7a37e072ed757ff143e34210a7b991b9480 Status: Downloaded newer image for ollama/ollama:latest 78a836df1c7ce1436b41b2d08e9d74764ae732fb06257308430ac9488ad8102d docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: Auto-detected mode as 'legacy' nvidia-container-cli: initialization error: load library failed: libnvidia-ml.so.1: cannot open shared object file: no such file or directory: unknown.你遇到的错误 libnvidia-ml.so.1: cannot open shared object file 表明 NVIDIA 容器运行时未能正确加载 GPU 驱动。以下是完整解决方案:问题原因NVIDIA 驱动未安装 Docker 容器需要宿主机已安装 NVIDIA 驱动并通过 nvidia-container-toolkit 暴露给容器。nvidia-container-toolkit 配置未生效 即使安装了工具包,Docker 可能未正确绑定 NVIDIA 驱动库。分步解决方案1. 确认 NVIDIA 驱动已安装运行以下命令检查驱动状态:nvidia-smi # 应有 GPU 信息输出若无输出,需先安装 NVIDIA 驱动:sudo ubuntu-drivers autoinstall # 自动安装推荐驱动 sudo reboot2. 修复 nvidia-container-toolkit 配置重新配置 NVIDIA 容器运行时并重启 Docker:# 确认工具包已安装 sudo apt-get install -y nvidia-container-toolkit # 重新生成配置 sudo nvidia-ctk runtime configure --runtime=docker # 重启 Docker 服务 sudo systemctl restart docker3. 验证容器 GPU 访问运行测试容器检查 GPU 是否可见:docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi若成功输出 GPU 信息,则配置已修复。4. 重新运行你的 Ollama 容器docker run -d --name=ollama \ --gpus=all \ --restart unless-stopped \ -p 30037:11434 \ -v /home/$USER/dockerfile/ollama/data:/root/.ollama \ ollama/ollama常见问题补充如果仍报错 libnvidia-ml.so.1强制绑定 NVIDIA 库(显式指定驱动路径):docker run -d --name=ollama \ --gpus=all \ -v /usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1:/usr/lib/x86_64-linux-gnu/libnvidia-ml.so.1 \ ollama/ollama若系统为 WSL2需在 Windows 宿主机安装 NVIDIA 驱动,并在 WSL2 中启用 GPU 支持:# 在 WSL2 中安装驱动兼容层 sudo apt-get install -y nvidia-cuda-toolkit关键日志检查若问题持续,检查 Docker 和 NVIDIA 容器日志:# Docker 日志 journalctl -u docker.service --since "5 minutes ago" # NVIDIA 容器日志 nvidia-container-cli -k -d /dev/tty info2. 部署 Open WebUIdocker run -d \ --name=open-webui \ -p 3000:8080 \ -e OLLAMA_API_BASE_URL=http://host.docker.internal:11434 \ --add-host=host.docker.internal:host-gateway \ --restart unless-stopped \ ghcr.io/open-webui/open-webui:main配置说明关键参数解析参数作用示例值--gpus=all启用全部 GPU必填-v ~/ollama_storage模型存储路径可自定义目录OLLAMA_API_BASE_URLOllama 服务地址保持默认网络架构示意图[用户浏览器] <-> [Open WebUI:3000] <-> [Ollama API:11434] ↑ | └── 模型数据持久化存储 ───┘验证部署1. 检查服务状态docker ps -a | grep -E "ollama|open-webui"2. 测试 API 接口curl http://localhost:11434/api/tags # 应返回包含 deepseek-r1 的模型列表3. 访问 Web 界面浏览器打开 http://[服务器IP]:3000,完成注册后:点击左下角模型选择器选择 deepseek-r1:7b开始对话测试高级配置多 GPU 分配docker update ollama --gpus '"device=0,1"' # 指定使用前两块 GPU中文支持优化登录 Open WebUI进入 Settings → Global Settings设置 Default Language 为 Chinese (Simplified)常见问题解决Q1: 容器启动报错 GPU not found# 重新配置 NVIDIA 容器 sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart dockerQ2: 模型下载速度慢# 在 Ollama 容器内配置镜像加速 docker exec -it ollama bash echo 'OLLAMA_MIRROR="https://mirror.example.com"' >> /etc/ollama.envQ3: 对话历史丢失# 检查 Open WebUI 数据卷 docker inspect open-webui | grep "Mounts"应用场景示例智能客服集成import requests def ask_ai(question): response = requests.post( "http://localhost:11434/api/generate", json={ "model": "deepseek-r1:7b", "prompt": f"作为客服助手回答:{question}", "stream": False } ) return response.json()["response"]自动生成 SQL 查询性能优化建议量化部署:使用 GGUF 格式量化模型docker exec -it ollama ollama run deepseek-r1:7b-q4缓存优化:调整 Ollama 的 OLLAMA_NUM_PARALLEL 环境变量负载均衡:部署多个 Ollama 实例并使用 Nginx 分流总结本文方案相比传统部署方式具备三大优势:快速部署:一行命令完成环境搭建资源隔离:Docker 容器保证服务稳定性弹性扩展:轻松实现多模型并行服务建议企业用户在此基础上进一步:配置 HTTPS 安全访问集成 LDAP 身份验证设置自动化备份策略立即按照本指南部署您的 AI 助手吧!如有问题欢迎在评论区留言讨论。
2025年02月22日
121 阅读
0 评论
1 点赞
2024-09-11
Ollama本地私有化部署
Ollama 是一个用于在本地或私有环境中部署大型语言模型(LLMs)的工具。本文将详细介绍如何通过一个一键安装脚本在本地环境中部署 Ollama,并集成联网搜索功能。1. 前提条件1.1 系统要求操作系统:Linux(推荐Ubuntu)Docker:必须安装 Docker 和 Docker ComposeGit:用于克隆 Ollama 仓库1.2 硬件要求CPU:至少4核RAM:根据模型大小至少需要8GB RAM,更大的模型可能需要更多硬盘:至少需要50GB的存储空间来保存模型和数据2. 一键安装脚本我们将使用一个一键安装脚本 ollama_install.sh 来自动化整个安装流程。该脚本将自动下载 Ollama 仓库、安装所需依赖、下载模型,并集成联网搜索功能。2.1 一键安装脚本 ollama_install.sh#!/bin/bash # 设置变量 OLLAMA_DIR="$HOME/programs/ollama" SEARCH_PROXY_PATH="$HOME/programs/search_proxy" MODEL_NAME="ollama-base" PORT="8080" # 更新系统包索引 sudo apt-get update # 检查是否已安装Docker if ! command -v docker &> /dev/null; then # 如果未安装,则安装Docker echo "Docker not found, installing..." sudo apt-get install docker.io -y sudo systemctl start docker sudo usermod -aG docker $USER newgrp docker else echo "Docker already installed." fi # 检查是否已安装Docker Compose if ! command -v docker-compose &> /dev/null; then # 如果未安装,则安装Docker Compose echo "Docker Compose not found, installing..." sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose else echo "Docker Compose already installed." fi # 检查是否已安装Python 3 if ! command -v python3 &> /dev/null; then # 如果未安装,则安装Python 3 echo "Python 3 not found, installing..." sudo apt-get install python3 -y else echo "Python 3 already installed." fi # 创建Ollama目录 mkdir -p $OLLAMA_DIR # 克隆Ollama仓库 git clone https://github.com/ollama/ollama.git $OLLAMA_DIR # 切换到Ollama目录 cd $OLLAMA_DIR # 下载默认模型 echo "Downloading default model..." ollama pull $MODEL_NAME # 创建.env文件 echo "MODEL=$MODEL_NAME" > .env echo "PORT=$PORT" >> .env # 创建搜索代理脚本 mkdir -p $SEARCH_PROXY_PATH cat <<EOF > $SEARCH_PROXY_PATH/search_proxy.py import requests import sys def search_web(query): url = f'https://html.duckduckgo.com/html/?q={query}' response = requests.get(url) if response.status_code == 200: return response.text else: return None if __name__ == "__main__": if len(sys.argv) > 1: query = ' '.join(sys.argv[1:]) result = search_web(query) print(result) EOF chmod +x $SEARCH_PROXY_PATH/search_proxy.py # 创建搜索代理的服务文件 cat <<EOF > /etc/systemd/system/search_proxy.service [Unit] Description=Search Proxy Service [Service] User=$USER WorkingDirectory=$SEARCH_PROXY_PATH ExecStart=/usr/bin/env python3 \$PWD/search_proxy.py \${QUERY} Restart=always [Install] WantedBy=multi-user.target EOF # 启动搜索代理服务 sudo systemctl daemon-reload sudo systemctl enable search_proxy.service sudo systemctl start search_proxy.service # 构建并运行Ollama容器 docker-compose up --build & echo "Ollama installation and setup complete. The search proxy is running in the background."2.2 使用方法保存脚本:将上述脚本保存为 ollama_install.sh 文件。赋予执行权限:在终端中运行 chmod +x ollama_install.sh。执行脚本:在终端中运行 sudo ./ollama_install.sh。3. 安装后使用说明3.1 访问 Ollama Web UI脚本执行完成后,Ollama 将会在后台运行。你可以通过 Web 浏览器访问 Ollama 的 Web UI。打开浏览器:使用你喜欢的浏览器。访问地址:输入 http://localhost:8080 或者根据你的实际 IP 地址和端口号输入 http://your_server_ip:8080。3.2 使用联网搜索功能Ollama 现在已经集成了联网搜索功能。当你在 Ollama 的 Web UI 中输入查询时,它将利用 DuckDuckGo API 进行搜索,并显示搜索结果。3.3 日常维护停止服务:如果需要停止 Ollama 服务,可以在终端中运行 docker-compose down。重启服务:如果需要重启 Ollama 服务,可以在终端中运行 docker-compose up --build。查看日志:可以查看 Ollama 的日志文件来诊断问题。日志通常位于 $OLLAMA_DIR/logs 目录下。4. 总结通过上述步骤,你已经成功地在本地环境中部署了 Ollama,并且集成联网搜索功能。Ollama 不仅简化了大型语言模型的部署流程,还提供了高度的灵活性和可扩展性。随着技术的进步,私有化部署将成为越来越多企业和个人的选择。
2024年09月11日
54 阅读
0 评论
0 点赞
2024-09-10
如何在Docker容器中管理服务端口及SSH服务
在使用Docker容器时,了解容器内运行的服务及其占用的端口是非常重要的。本文将指导您如何列出容器内所有服务名称和占用的端口,并检查容器是否运行着OpenSSH服务。1. 列出容器内所有服务名称和占用的端口要找出当前容器内运行的服务及其绑定的端口,可以使用netstat或ss命令。使用netstat命令如果您容器中有安装netstat,可以使用以下命令来查找所有监听的TCP和UDP端口:netstat -tuln命令输出可能类似于:Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:63322 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:888 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN tcp6 0 0 :::63322 :::* LISTEN 使用ss命令如果您的容器使用的是ss命令,可以这样操作:ss -tuln输出看起来与netstat类似。2. 检查容器是否运行着OpenSSH服务要检查容器内是否正在运行OpenSSH服务,可以使用pgrep或者ps命令加上grep来查找。使用pgrep命令如果您有pgrep命令,可以直接这样查询:pgrep sshd如果有ssh服务正在运行,它将返回一个或多个进程ID。如果没有返回任何东西,则意味着没有ssh服务正在运行。使用ps命令结合grep如果没有pgrep,可以使用ps命令结合grep来查找:ps aux | grep sshd这将显示所有包含sshd关键词的进程列表。如果没有任何输出(除了grep自身的进程),则表示没有运行OpenSSH服务。3. 查看具体服务占用端口的情况假设您已经知道某个端口被某个服务占用,但不确定是哪个具体服务,可以使用lsof命令来查找打开文件和IPC节点(例如网络套接字)。lsof -i :端口号例如,要找到占用端口63322的服务,可以这样做:lsof -i :63322这将会显示类似于以下的输出:COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 20 root 3u IPv4 29903991 0t0 TCP *:63322 (LISTEN) sshd 20 root 4u IPv6 29903993 0t0 TCP *:63322 (LISTEN) BT-Panel 849 root 16u IPv4 41302087 0t0 TCP localhost:53958->localhost:63322 (ESTABLISHED) sshd 47399 root 3u IPv4 41299442 0t0 TCP localhost:63322->localhost:53958 (ESTABLISHED)这里可以看到sshd进程使用PID 20占用着端口63322,并且有两个监听端口的文件描述符,一个是IPv4,另一个是IPv6。4. 永久禁用IPv6连接如果您希望永久禁用IPv6连接,可以通过修改OpenSSH的配置文件来实现这一点。打开sshd_config文件编辑器:sudo nano /etc/ssh/sshd_config在文件中添加或修改以下行:# ListenAddress :: (这行可以注释掉) ListenAddress 0.0.0.0保存并关闭文件。重启OpenSSH服务使更改生效:sudo systemctl restart ssh结论通过上述步骤,您可以轻松地管理和监控Docker容器内的服务端口及SSH服务的状态。这对于保证系统的安全性和稳定性至关重要。希望本文能够帮助您更好地理解和控制您的容器环境。
2024年09月10日
53 阅读
0 评论
0 点赞
2024-09-05
Docker一键部署宝塔面板教程
一、镜像特点全程自动安装依赖自动安装宝塔面板、环境、插件自动修改默认面板端口、用户名、密码、安全入口自动配置镜像SSH自动同意首次登陆的用户协议自动取消强制登录自动降级为7.7.0版本修复面板XSS高危漏洞兼容新版本面板运行环境去除专业/企业应用安装权限去除宝塔面板强制绑定账号去除各种删除操作时的计算题与延时等待去除创建网站自动创建的垃圾文件(index.html、404.html、.htaccess)关闭未绑定域名提示页面,防止有人访问未绑定域名直接看出来是用的宝塔面板关闭活动推荐与在线客服,去除首页企业版广告去除自动校验文件与上报信息定时任务去除面板日志与网站绑定域名上报二、版本来源优化版:latest --> https://github.com/gettionhub/baota专业版:pro --> https://bt.sy/bbs/thread-2-1-1.html企业版:ltd --> https://bt.sy/bbs/thread-3-1-1.html建议使用 latest 版本镜像,手动分离数据库外置,比如搭配adminer+mariadb+postgres的docker镜像,将宝塔面板容器和数据库容器连接使用,以防止意外发生导致数据库丢失或泄露。三、如何部署面板默认信息登录地址:http://{{面板ip地址}}:8888/baota用户名:baotao密码:baota端口:8888安全入口:/baotaSSH端口:22SSH root用户密码:baota注意:部署后务必先修改如上信息,以防被利用!部署方式1. 通过 docker run 运行docker run -itd \ --name baota \ --network=host \ --privileged=true \ --restart=unless-stopped \ -v ~/www/wwwroot:/www/wwwroot \ -v ~/www/vhost:/www/server/panel/vhost \ gettionhub/baota:latest2. 通过 docker-compose 运行git clone https://github.com/gettionhub/baota.git cd baota docker pull gettionhub/baota:latest COMPOSE_HTTP_TIMEOUT=1200 docker-compose --verbose up -d3. 通过 docker-compose 配置version: '3.3' services: baota: image: gettionhub/baota:latest #优化版 #image: gettionhub/baota:pro #专业版 #image: gettionhub/baota:ltd #企业版 container_name: baota #容器名 network_mode: bridge #网络模式 privileged: true #root权限 restart: unless-stopped ports: - 8880:80 - 8443:443 - 8888:8888 - 888:888 volumes: - ./web:/www/wwwroot #网站数据目录 - ./data:/www/server/data #MySQL数据目录 - ./vhost:/www/server/panel/vhost #vhost文件路径四、常用命令获取宝塔面板默认信息docker exec -it baota /etc/init.d/bt default重启nginxdocker exec -it baota /etc/init.d/nginx restart重启PHPdocker exec -it baota /etc/init.d/php-fpm-80 restart重启mysqldocker exec -it baota /etc/init.d/mysqld restart进入宝塔容器docker exec -it baota /bin/sh五、破解教程(仅供学习交流)请注意,任何破解行为都可能违反软件许可协议,并且存在法律风险,因此下面提供的教程仅供技术学习和交流,不建议在实际环境中使用。1. 解除面板时间限制使用文件管理器进入 /www/server/panel/data/ 目录,找到 plugin.json 文件。编辑 plugin.json 文件。使用编辑器查找 "endtime": -1 并将其替换为 "endtime": 999999999999。保存更改。2. 解除面板版本授权继续在 plugin.json 文件中操作。查找 is_user_status,并找到 "ltd": -1 和 "pro": -1,将 -1 替换为 0。保存更改。3. 授权文件进行保护使用以下命令保护 plugin.json 文件:chattr +i /www/server/panel/data/plugin.json若要解除保护,使用以下命令:chattr -i /www/server/panel/data/plugin.json
2024年09月05日
53 阅读
0 评论
0 点赞
2024-08-11
如何在 Docker 版本的 Nexus 用作 Docker 私有仓库并配置 SSL 证书
如何在 Docker 版本的 Nexus 用作 Docker 私有仓库并配置 SSL 证书本文将指导您如何在 Docker 版本的 Nexus 用作 Docker 私有仓库并配置 SSL 证书。通过使用 SSL 证书,您可以提高仓库的安全性,并确保与仓库的通信是加密的。前提条件已经安装了 Docker。已经准备好了 SSL 证书,包括证书文件 (server.crt)、私钥文件 (server.key) 和根证书文件(如果有的话)。步骤 1: 准备 SSL 证书确保你已经获得了 SSL 证书,并且有以下文件:server.crt - 证书文件。server.key - 私钥文件。ca.crt - 根证书(如果有的话)。步骤 2: 创建 Nexus 配置文件Nexus 需要一个配置文件来指示它如何使用 SSL 证书。你可以创建一个名为 sonatype-work.conf 的文件来配置 Nexus 使用 SSL 证书。创建配置文件使用文本编辑器创建配置文件:vi /etc/nexus/sonatype-work.conf在文件中添加以下内容:# SSL Configuration sonatype.ssl.keyStorePath=/path/to/keystore.jks sonatype.ssl.keyStorePassword=<your_keystore_password> sonatype.ssl.keyPassword=<your_key_password> # 如果你有根证书,可以使用以下配置 # sonatype.ssl.trustStorePath=/path/to/truststore.jks # sonatype.ssl.trustStorePassword=<your_truststore_password>替换 <your_keystore_password> 和 <your_key_password> 为你的 keystore 和 key 的密码。如果你有根证书 (ca.crt),你需要将其转换为 Java Keystore (truststore.jks) 格式,并提供路径和密码。保存并关闭文件。步骤 3: 将证书转换为 Java Keystore 格式如果你有根证书 (ca.crt),你需要将其转换为 Java Keystore (truststore.jks) 格式。创建信任存储使用 keytool 创建信任存储:keytool -import -trustcacerts -alias nexus-ca -file /path/to/ca.crt -keystore /path/to/truststore.jks -storepass <your_truststore_password>替换 <your_truststore_password> 为你的 truststore 密码。更新 sonatype-work.conf 文件以包含 truststore.jks 的路径和密码。步骤 4: 创建 Docker 配置文件创建一个 Docker 配置文件来配置 Nexus 使用 SSL 证书。创建配置文件使用文本编辑器创建配置文件:vi /etc/docker/nexus-docker-config.json在文件中添加以下内容:{ "http": { "port": 8081 }, "https": { "port": 8443, "keystore": { "path": "/path/to/keystore.jks", "password": "<your_keystore_password>" } } }替换 <your_keystore_password> 为你的 keystore 密码,并确保路径正确。保存并关闭文件。步骤 5: 运行 Nexus Docker 容器拉取 Nexus Docker 镜像拉取 Nexus Docker 镜像:docker pull sonatype/nexus3运行 Nexus Docker 容器运行 Nexus Docker 容器:docker run -d \ --name nexus \ -p 8081:8081 \ -p 8443:8443 \ -v /path/to/sonatype-work.conf:/sonatype-work/conf/sonatype-work.conf \ -v /path/to/keystore.jks:/path/to/keystore.jks \ -v /path/to/truststore.jks:/path/to/truststore.jks \ -v /path/to/nexus-data:/sonatype-work/nexus \ -v /path/to/nexus-docker-config.json:/sonatype-work/nexus/etc/nexus-docker-config.json \ sonatype/nexus3替换 /path/to/... 为实际的路径。注意事项确保你的证书文件路径正确无误。如果你使用了自签名证书,客户端可能会警告证书不受信任。在这种情况下,你需要将证书导入客户端的信任存储中。如果你有多个证书,可能需要使用不同的别名导入到 truststore。结论通过上述步骤,你应该能够成功配置 Nexus 作为 Docker 私有仓库,并使用 SSL 证书进行加密。如果你有任何疑问或遇到问题,请随时提问。
2024年08月11日
70 阅读
0 评论
0 点赞
1
2
...
10
您的IP: