当前位置: 首页 > news >正文

乌克兰集团网站建设创一个app需要多少钱

乌克兰集团网站建设,创一个app需要多少钱,自己设计图纸的软件,阿里巴巴每平每屋设计家官网之前记录了 docker的安装 【环境配置】ubuntu中 Docker的安装#xff1b; 本篇博客记录Dockerfile的示例#xff0c;docker 的使用#xff0c;包括镜像的构建、容器的启动、docker compose的使用等。   当安装好后#xff0c;可查看docker的基本信息 docker info ## 查… 之前记录了 docker的安装 【环境配置】ubuntu中 Docker的安装 本篇博客记录Dockerfile的示例docker 的使用包括镜像的构建、容器的启动、docker compose的使用等。   当安装好后可查看docker的基本信息 docker info ## 查看docker信息在输出中查找 Docker Root Dir 字段它会显示 Docker 存储的根目录。 docker version ## 查看docker版本1 Dockerfile的编写 Dockerfile 的介绍 Dockerfile是一个文本文件其中包含了一系列指令这些指令定义了如何从基础镜像创建一个新的Docker镜像。通过执行docker build命令Docker会逐行解析Dockerfile中的指令并逐步构建出镜像。镜像构建过程 基础镜像Dockerfile的第一条指令通常是FROM用于指定基础镜像。基础镜像可以是官方提供的镜像如ubuntu:20.04也可以是其他自定义的镜像。安装依赖使用RUN指令在镜像中执行命令如安装软件包、配置环境等。复制文件使用COPY或ADD指令将文件从宿主机复制到镜像中。设置环境变量使用ENV指令设置环境变量。暴露端口使用EXPOSE指令声明容器监听的端口。启动命令使用CMD或ENTRYPOINT指令指定容器启动时执行的命令。 记录一个实际工程的Dockerfile的例子# 1. 基础镜像 FROM nvidia/cuda:11.2.2-cudnn8-runtime-ubuntu20.04# 2. 是一个构建参数用于指定在构建Docker镜像时要克隆的GitHub仓库的特定分支或提交。 ## main、develop、feature-add-new-model、release-v1.0、v1.0.0等 ARG SEGMENT_ANYTHING_COMMITmain# 3. 设置环境变量 ## 设置非交互模式避免在安装过程中出现交互式提示。 ENV DEBIAN_FRONTENDnoninteractive ## 设置应用程序目录为/DEMO。 ENV APP_DIR/DEMO ## 设置pip缓存目录为$HOME/.cache。 ENV PIP_CACHE_DIR/root/.cache# 4. 设置工作目录 WORKDIR $APP_DIR# 5. 设置时区 ## 在Docker镜像中设置时区为上海Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime echo Asia/Shanghai /etc/timezone# 6. 配置APT源, 清理缓存推荐 ## 将阿里云的APT源写入到/etc/apt/sources.list文件中。 RUN echo deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse /etc/apt/sources.list \echo deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse /etc/apt/sources.list \echo deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse /etc/apt/sources.list \echo deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse /etc/apt/sources.list \echo deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse /etc/apt/sources.list \echo deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse /etc/apt/sources.list \echo deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse /etc/apt/sources.list \echo deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse /etc/apt/sources.list \# 更新APT包列表。apt-get update \# 安装curl。apt-get install -y --no-install-recommends curl \# 清理已经下载的软件包文件。apt-get clean \## 删除APT的软件包列表缓存进一步释放空间。rm -rf /var/lib/apt/lists/*# 7. 安装基础工具和依赖库 ## 更新APT包列表并安装依赖包然后清理APT的软件包列表缓存。 RUN apt-get update \apt-get install --no-install-recommends --no-install-suggests -y \build-essential \libxml2-dev \libxslt-dev \zlib1g-dev \python3.9 \python3.9-distutils \python3.9-dev \git \libgl1 \libglib2.0-0 \libsm6 \libxrender1 \libxext6 \apt-get clean \rm -rf /var/lib/apt/lists/*# 8. 安装pip。## 下载get-pip.py到镜像中的当前目录 RUN curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py \## 执行get-pip.py脚本安装pip。python3.9 get-pip.py \## 删除get-pip.py脚本rm get-pip.py# 9. 升级 pip 并配置 pypi 源 ## 创建符号链接使/usr/bin/python指向/usr/bin/python3.9。 RUN ln -s /usr/bin/python3.9 /usr/bin/python RUN pip install --upgrade pip \pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple# 10. 库的安装 COPY requirements.txt . ## 指定版本兼容显卡驱动以及对应的cuda版本 RUN pip3 install torch1.12.1cu113 torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113 RUN pip install --no-cache-dir -r requirements.txt --timeout120# 11. 复制应用代码 COPY . .# 12. 暴露端口并启动 EXPOSE 4000 CMD [bash, -c, source config/config_${MODE}.env python app.py --mode${MODE}]2 镜像的相关命令 已知镜像的名字为 DEMO:v1.0以此为例相关操作命令如下。 镜像的创建 【基于现有镜像创建】 基于远程仓库中已有的 DEMO:v1.0 镜像来创建本地副本docker pull DEMO:v1.0【构建新的镜像】 通过 Dockerfile 构建一个新的 DEMO:v1.0 镜像docker build -t DEMO:v1.0 .这里的 . 表示当前目录为上下文路径Docker 会在这个路径下寻找 Dockerfile 来构建镜像 镜像的查询 【列出所有本地镜像】 要查看包括 DEMO:v1.0 在内的所有本地镜像docker images【检查特定镜像详情】 为了获取 DEMO:v1.0 的详细信息docker inspect DEMO:v1.0镜像的删除 【如果该镜像正在被某个容器使用你需要先停止并移除那个容器或者使用 -f 参数强制删除】docker rmi -f DEMO:v1.0【删除无标签镜像悬空镜像】 有时构建了多个镜像时可能会留下一些没有标签的镜像即悬空镜像。可以使用以下命令来清理它们docker image prune -f上命令中的 -f 参数用于强制执行操作不需要用户确认。在执行任何删除或修改操作之前请确保你已经备份了重要数据并且了解每个命令的影响。【清理无用的镜像、容器、网络、卷】docker system prune 3 容器的相关命令 基于镜像 DEMO:v1.0 启动一个容器docker run --name demo \ -p 4000:4000 \ -v /host/data:/app/data \ -e MODEloc \ -d \ DEMO:v1.0docker run 启动一个新容器。--name demo –name 用来为容器指定一个名称。在这个例子中容器被命名为demo。这使得后续对容器的操作如停止、删除等更加直观和容易管理。-p 4000:4000 -p 参数用于将主机的端口映射到容器内的端口。这里的意思是将主机的 4000 端口映射到容器内部的 4000 端口。这意味着当有人访问主机的 4000 端口时请求会被转发给运行在容器 4000 端口上的服务。-v /host/data:/app/data -v 参数用于挂载卷即把主机上的目录或文件映射到容器内的路径。此例中它将主机上的 /host/data 目录挂载到了容器内的 /app/data 目录。这样做的好处是可以让容器访问主机的数据反之亦然这对于持久化数据或共享数据非常有用。-e MODEloc -e 参数用来设置环境变量。这里设置了名为 MODE 的环境变量并赋予其值 loc。这个环境变量可以在容器内被应用程序读取比如在启动脚本中使用 ${MODE} 来决定应用的行为模式例如本地测试模式。-d -d 参数表示分离模式detached mode也就是后台运行。容器启动后会立即进入后台运行状态而不会占用当前终端。DEMO:v1.0 这是要使用的 Docker 镜像的名字和标签。DEMO 是镜像名称:v1.0 是标签表示版本号。Docker 会尝试拉取或使用这个镜像来创建并启动新的容器。 查看容器状态 【列出所有正在运行的容器】docker ps【列出所有容器包括已停止的】docker ps -a【查看容器详细信息】docker inspect my_demo_container【查看容器运行日志】docker logs my_demo_container停止容器 要停止一个正在运行的容器可以使用它的名称或IDdocker stop my_demo_container重启容器 要重启一个已经停止的容器同样可以使用它的名称或IDdocker restart my_demo_container进入正在运行的容器 如果需要进入一个已经在运行的容器可以使用 exec 命令。这将在不中断容器服务的情况下为你提供一个交互式的 shell。docker exec -it my_demo_container /bin/bash若要查看容器中的pytorch版本在上面命令基础上再运行python -c import torch; print(torch.__version__); print(torch.cuda.is_available())删除容器 【移除某个容器】docker rm my_demo_containe【强制删除容器】 如果需要强制删除一个正在运行的容器可以加上 -f 参数docker rm -f my_demo_container【清理停止的容器】 当有很多已经停止的容器时可以使用以下命令来清理它们docker container prune以上命令会提示你确认是否要移除所有已经停止的容器。如果你不想看到提示可以直接添加 -f 或者 --force 参数。 修改Dockerfile后重新构建镜像需要更新容器 【先删除容器忽略错误然后运行新容器】docker rm -f my_demo_container /dev/null 21 || : docker run -d -p 4000:4000 -e MODEloc --name my_demo_container DEMO:v1.0/dev/null 将标准输出重定向到 /dev/null即丢弃标准输出。21 将标准错误重定向到与标准输出相同的位置也就是 /dev/null。这意味着无论是正常输出还是错误信息都将被丢弃不会显示在终端上。|| : 如果前面的命令失败则执行空命令 :以防止因为错误而导致整个命令序列停止。 4 docker-compose 的使用 创建 docker-compose.yml 文件。 其中内容如下services: oneapi:container_name: oneapiimage: justsong/one-api:latestrestart: unless-stoppednetwork_mode: bridge ports:- 3000:3000 volumes:- /opt/ai-platform/lldataset/240/containerd/oneapi/data:/data environment:- TZAsia/Shanghaioneapi 服务名称。container_name: oneapi 容器名称。 明确指定了启动的容器将被命名为 oneapi。这有助于直接通过名称管理容器。image: justsong/one-api:latest 镜像。使用了特定的镜像并使用 latest 标签。建议在生产环境中指定具体的版本标签而不是 latest以避免意外拉取到不兼容的新版本。restart: unless-stopped 重启策略。设置了容器的重启策略为 unless-stopped这意味着除非手动停止否则容器会自动重启包括系统重启后。network_mode: bridge 网络模式。使用默认的桥接网络模式。这是大多数情况下推荐的选择因为它提供了良好的隔离性和灵活性。ports 端口映射。将主机的 3000 端口映射到容器内的 3000 端口。这允许外部访问运行在容器内的服务。volumes 卷挂载。挂载了主机路径 /opt/ai-platform/lldataset/240/containerd/oneapi/data 到容器内的 /data 目录。这对于持久化数据或共享文件非常重要。environment 环境变量。设置了时区环境变量 TZAsia/Shanghai确保容器内的应用程序使用正确的时区设置。 验证配置文件 启动服务之前来检查和解析配置文件这将帮助发现任何潜在的问题。docker compose config准备环境 确保所有依赖项都已准备好比如 数据库或其他外部服务是否已经启动并可以访问。如果有 .env 文件确保它已经创建并且包含所有必要的环境变量。确认主机上的目录如卷挂载点 /opt/ai-platform/lldataset/240/containerd/oneapi/data存在并且权限正确。 镜像的构建与服务的启动 【构建镜像】docker-compose build【启动服务】docker-compose up # 在前台启动服务可以看到日志输出方便调试。 docker-compose up -d # 在后台启动服务并让其以后台模式运行。【首次启动时构建镜像】 build 指令 将强制重新构建这些服务的镜像。即使已经存在本地镜像也会根据 Dockerfile 重新构建。docker-compose up --build -d【强制重新构建服务镜像】 强制重新构建服务镜像即使这些镜像已经存在。这确保了所有最新的代码更改和依赖项都被包含在新镜像中。docker-compose up -d --build --force-recreate验证服务状态 【查看服务状态】 验证服务是否正常启动docker-compose ps【查看日志输出】docker-compose logs -f健康检查与测试 确保服务按照预期工作。对于 Web 服务可以通过浏览器或 curl 访问应用对于数据库等服务可以通过客户端工具连接并执行查询。 测试 API 或 Web 应用: 打开浏览器或使用命令行工具访问服务端口例如如果你映射了 3000 端口可以访问 http://localhost:3000。# 测试服务是否正常工作 curl http://localhost:3000重启容器 【停止并重新启动所有服务】 如果想停止所有服务然后重新启动它们可以使用以下命令。这个命令会先停止所有的服务然后再启动它们。这对于需要重启整个应用堆栈的情况非常有用。docker-compose restart【仅重启特定的服务】 如果只想重启某个特定的服务例如 oneapi可以指定服务名称docker-compose restart oneapi【完全停止并重新创建容器】 若需要完全停止并重新创建容器这可以通过 down 和 up 命令的组合来实现。这通常用于在更改了配置文件或镜像后确保所有更改生效。# 停止并移除所有服务容器、网络及卷 docker-compose down# 构建并启动服务在后台运行 docker-compose up -d --build
http://www.w-s-a.com/news/842019/

相关文章:

  • 网站代理打开个人网站设计源码
  • 做php网站的话要学什么语言wordpress搜索不到
  • 金华官方网站建设网络营销策划模板
  • 网站开发到上线在线生成小程序
  • 动易网站设计方案郑州营销网站建设
  • 怎么上网站做简易注销的步骤郑州大学现代远程教育《网页设计与网站建设》课程考核要求
  • 新乡网站建设新乡长沙本地论坛有哪些
  • 潍坊中企动力做的网站怎么样wordpress接入微博
  • 网站开发者所有权归属网站项目建设的必要性
  • 菜鸟网站编程广州网站设计权威乐云践新
  • 网站做接口到app 价格大地资源免费视频观看
  • 怎么给钓鱼网站做防红网站建设相关的
  • 教育培训的网站建设湖南网站建设小公司
  • 福建南平网站建设创意交易平台网
  • 做直播网站要哪些技术内容营销理论
  • 价格划算的网站开发怎么找有赞做网站
  • 做网站店铺图片用什么软件网络营销方案格式
  • 做外贸要自己建网站吗有效的网络营销方式
  • 精通网站开发书籍做网站获取手机号码
  • 论坛做视频网站有哪些济南新站seo外包
  • 哪类型网站容易做冷水滩做微网站
  • 搭建企业网站流程保定徐水网站建设
  • 建设单位到江川区住房和城乡建设局网站伦敦 wordpress 设计
  • 响应式网站的服务麦德龙网站建设目标
  • 做国外单的网站叫什么海南省海口市网站建设
  • 杭州响应式网站案例wordpress5.2.2
  • 网站建设运营维护合同wordpress资源搜索插件
  • 国外网站流量查询东莞网站建设教程
  • 餐饮类网站建设达到的作用东莞工程建设交易中心网
  • 网站设计 知识产权湖北网站建设xiduyun