前提条件
开发机需创建本地盘
开发机需开启 Docker 功能
基础操作
进入开发机创建页面,选择可用区与规格后,创建本地盘。若所选规格无本地盘配额,则无法使用 Docker 功能。
提示:可开启本地盘持久化,Docker 内数据将持久保存,开发机重启后容器数据不丢失。
在环境配置中启用 Docker。
若为 GPU 规格开发机,启用 Docker 后需配置 GPU 卡分配(如 8 卡规格可分配 4 卡给 Docker,剩余分配给开发机)。
框架版本可任选,本文以VNC 纯净镜像 为例,确认订单并启动开发机。
进入 VNC 界面,打开终端,默认已支持 docker、docker-compose 命令,无需额外安装。
使用docker一键部署dify,输入指令:docker run -p 80:80 ehub.ctcdn.cn/esk-ops/dify:v1.9.1-1
如需在Docker容器中使用GPU,指令需增加
--gpus '"device='"$DOCKER_NVIDIA_VISIBLE_DEVICES"'"'参数,例如:docker run -it --gpus '"device='"$DOCKER_NVIDIA_VISIBLE_DEVICES"'"' -p 80:80 ehub.ctcdn.cn/esk-ops/dify:v1.9.1-1
提示:如果您是8卡规格,可直接使用 —gpus all
7. 出现对应启动成功日志,即表示 Dify 启动完成。
8. 在浏览器中输入127.0.0.1:80 访问Dify
9. 输入账号密码,登录Dify
存储挂载
可将科研文件目录挂载至 Docker 容器,实现开发机与容器双向读写。例如docker run -v /home/dataset-assist-0/:/data 镜像名称
端口暴露
您可使用docker run -p 开发机端口:容器端口,将容器端口暴露到开发机上,方便多个容器、开发机间网络通信。
您可使用docker run -p 8000:容器端口并开启开发机的对外端口功能,将容器中的服务暴露到互联网上定向访问。
Tips
启用docker后开发机将自动提供docker和docker-compose命令,无需手动安装docker。
Docker数据存储在本地盘中,若创建本地盘时开启本地盘持久化,开发机重启docker数据不会丢失,可直接docker start原有容器。
若需使用docker-compose,建议将项目(docker-compose.yml所在目录)存放在科研文件中,否则docker-compose up时容器无法读取项目中指定路径的文件。
常见问题
提示Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
您使用sudo或root用户执行docker会缺失环境变量,可使用默认用户batchcom的bash执行docker命令即可正常使用。
您也可以手动配置环境变量修复,可在正常使用的环境下执行printenv | grep -i DOCKER,查看所要配置的环境变量。
2. 启动容器后输入nvidia-smi提示无命令
(1)确保启动开发机时有将GPU卡分配给docker。
(2)请先确认docker run时是否配置了—gpus参数,例如 --gpus '"device='"$DOCKER_NVIDIA_VISIBLE_DEVICES"'"' 或 –gpus all
(3)若您的可用区是南京或中卫,可尝试将启动命令改为docker run --runtime=nvidia -e "NVIDIA_VISIBLE_DEVICES=${DockerGPU_IDX}" 镜像名称
3. 提示Error response from daemon: authorization denied by plugin ehub.ctcdn.cn/bc-ops/opa-docker-authz-v2:0.1: request rejected by administrative policy
原因:由于安全管控,非白名单操作无法执行。若为启动容器时提示,请调整启动参数,去除需要系统高级权限相关的参数。