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

docker与大模型(口语化原理和实操讲解)

文章目录

    • 一、镜像images
      • 1)下载安装
      • 2)docker images相关命令(保存、删除、上传、别名、搜索镜像)
    • 二、容器container
      • 1)展现所有在跑的容器服务ps
      • 2)start /restart / kill / stop /rm
      • 3)exec /cp
      • 4)run/create
      • 5)logs/stats/top
      • 6)commit
      • 7)attach
    • 三、dockerfile
      • 1)基本概念和常用指令
      • 2)dockerfile示例
      • 3)构建镜像命令
    • 四、volume
    • 五、network
    • 六、docker-compose
    • 七、proxy

一、镜像images

  • 问题
    本地部署后给别人,环境不同带来的麻烦别人部署不了

  • 解决问题思路示意
    在这里插入图片描述

  • 内容
    ①images:二进制文件,可以认为是个模板,可以生成container,container是实际在跑的程序
    ②repo:仓库,存储很多人传的不同images镜像,类似于github一样
    ③dockerfile:从自己本地生成images的过程

1)下载安装

①官网下载
在这里插入图片描述
②查看docker是否装好开起来

//通过 docker ps 命令,用户可以快速查看当前运行的容器,了解它们的状态和基本信息,这对于管理和监控 Docker 容器非常有用。
docker ps

在这里插入图片描述
输出格式

CONTAINER ID   IMAGE          COMMAND                  CREATED        STATUS        PORTS                    NAMES

CONTAINER ID:容器的唯一标识符。
IMAGE:容器使用的镜像。
COMMAND:容器启动时运行的命令。
CREATED:容器创建的时间。
STATUS:容器的当前状态,如运行中(Up)、已停止(Exited)等。
PORTS:容器暴露的端口和映射到主机的端口。
NAMES:容器的名称。

2)docker images相关命令(保存、删除、上传、别名、搜索镜像)

  • 备注
    不知道命令的作用,就用下面命令打印出来
docker 命令  --help

在这里插入图片描述

  • 具体命令展示
    ①images / images ls
    ②search 搜索镜像\pull 拉取镜像
    ③tag \ push \login \ logout
    ④rmi 删除镜像
    ⑤save \load
    ⑥history \ inspect

  • 具体命令效果
    ①images / images ls

标签
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

REPOSITORY:镜像所属的仓库名称。
TAG:镜像的标签。
IMAGE ID:镜像的唯一标识符。
CREATED:镜像创建的时间。
SIZE:镜像的大小。
在这里插入图片描述

②search 搜索镜像\pull 拉取镜像

在repo上面搜索hello-world
在这里插入图片描述
拉取镜像

(若指定版本,则加上:1.0)
docker  pull  rancher/hello-world

在这里插入图片描述

拉取过来后,用docker images看本地镜像,可以看到本地已经有这个rancher的hello-world了
在这里插入图片描述

③tag \ push \login \ logout
tag给镜像起别名,命令用于给本地的 Docker 镜像添加一个新的标签。标签是镜像的一个别名,可以用来标记镜像的不同版本或者用途。通过 docker tag 命令,用户可以将一个镜像标记为属于某个特定的仓库或者版本,这对于管理和分发 Docker 镜像非常有用。

docker  tag  标签名字 账号名字/库名字:版本号docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

在这里插入图片描述
push上传镜像
在这里插入图片描述

在这里插入图片描述

④rmi 删除镜像

docker rmi 镜像名字

在这里插入图片描述

⑤save 保存镜像 \ load

离线要保存镜像的话

docker save -o myimage.tar myimage

在这里插入图片描述
解压缩

docker load -i hw.tar

在这里插入图片描述

⑥history \ inspect

history看镜像构建的历史
在这里插入图片描述
inspect看对应镜像的信息
在这里插入图片描述

二、容器container

容器命令讲解

1)展现所有在跑的容器服务ps

docker ps -a //-a意思是all,所有的

在这里插入图片描述

2)start /restart / kill / stop /rm

①stop 停止某个容器的服务
在这里插入图片描述
②start开始某个容器的服务器
在这里插入图片描述
③restart 重启某个容器
在这里插入图片描述
④删除某个容器rm(不推荐使用,容易出问题)
在这里插入图片描述

3)exec /cp

①exec 进入到某个容器里面(已经有这个容器了
-i: 可交互的
t:终端
在这里插入图片描述

②把某个文件复制到容器里面去
在这里插入图片描述
或是把容器内的文件复制到当前目录下
在这里插入图片描述

4)run/create

①run运行一个镜像
在这里插入图片描述
后台守护进程运行一个容器

docker run -d 4b1

在这里插入图片描述

如果想让容器停掉后就销毁了

docker run  --rm   -d  4b1

在这里插入图片描述
②create创建一个容器,但是不让他跑起来

5)logs/stats/top

①logs 监控容器输出
在这里插入图片描述
②stats 看运行中的容器占用的资源
在这里插入图片描述
③top查看容器占用
加粗样式

6)commit

①commit 把容器生成一个镜像(不建议这么做,这么做的话只能生成黑盒)

在这里插入图片描述

7)attach

附加到一个容器上面,但是CTRL+C就会杀掉容器
在这里插入图片描述

三、dockerfile

1)基本概念和常用指令

  • 基本概念
    ①dockerfile:一个文本文件,其中包含了一系列指令,Docker 引擎根据这些指令构建镜像
    ②镜像:Dockerfile 构建后生成的可执行软件包,包含了运行应用所需的代码、库、环境变量等。
    ③层:Docker 镜像由多个层(Layer)构成,每一条指令都会创建一个新的层。层是不可变的,这使得 Docker 镜像更为高效和可重用。
  • 常用指令
FROM	指定基础镜像,Dockerfile 的第一行通常是此指令。
MAINTAINER	指定维护者信息(不推荐使用,使用 LABEL 替代)。
LABEL	添加元数据到镜像,例如作者、版本等。
RUN	在构建镜像时执行命令(例如安装软件包)。
CMD	指定容器启动时要执行的命令,可以被 docker run 命令覆盖。
ENTRYPOINT	设置容器启动时的默认命令,不能被 docker run 轻易覆盖。
COPY	将文件或目录从主机复制到镜像中。
ADD	类似于 COPY,但还支持 URL 和自动解压压缩文件。
ENV	设置环境变量。
EXPOSE	声明容器监听的端口,但并不会实际映射到主机。
VOLUME	创建挂载点,用于持久化数据。
WORKDIR	设置工作目录,后续指令将在此目录下执行。
ARG	定义构建时可用的变量。
USER	指定运行时的用户。
SHELL	指定默认的 shell,用于运行后续指令

在这里插入图片描述
①FROM使用举例:表示基于什么环境做镜像
1)以特定版本的 CentOS 为基础:FROM centos:7,表示以 CentOS 7 版本的镜像作为基础来构建新的镜像,该镜像中包含了 CentOS 7 的操作系统环境及相关的软件包管理系统等基础组件。
2)以 Alpine Linux 为基础:FROM alpine:3.18,Alpine 是一个轻量级的 Linux 发行版,常用于构建小型、高效的容器镜像。这里以 Alpine 3.18 版本为基础,适合对镜像大小有严格要求的场景,如构建简单的网络服务或命令行工具容器等
3)以特定版本的 Java 运行时环境镜像为基础:FROM openjdk:11-jdk,此指令以包含 Java 11 开发工具包的 OpenJDK 镜像为基础,适用于构建 Java 应用程序的容器化环境,镜像中已经预安装了 Java 运行时和开发所需的相关库等,方便直接在容器内运行和开发 Java 应用。
4)以 Python 为基础镜像:FROM python:3.11,slim 版镜像去除了一些不必要的软件包和文件,使得镜像体积大幅减小。这对于容器化部署非常有利,尤其是在资源受限的环境中,如小型服务器、边缘计算设备等,可以更高效地利用存储空间,同时也能加快镜像的下载和部署速度
5)以 C++ 为基础镜像:对于 C++,通常没有像 Python 那样直接对应版本的官方基础镜像,但可以选择一些基于 Linux 发行版且预安装了 C++ 编译环境的镜像作为基础:FROM ubuntu:20.04

可以看到有自带的环境(没有的话docker会自动下载,有则优先从本地寻找)
在这里插入图片描述

②WORKDIR 设置工作目录,后续指令将在此目录下执行。
(应该把所有代码放到这个路径下面去,然后执行的时候应该从这个路径作为项目的根路径去执行指令)
③COPY 将文件或目录从主机复制到镜像中。

#表示将当前路径的所有文件复制到/app/下面
COPY .   /app/

④RUN 在构建镜像时执行命令(例如安装软件包)。

#安装flask包
RUN pip install flask

⑤CMD 容器要启动的时候要执行的命令

CMD ["python", "app.py"]

⑥ENTRYPOINT 设置容器启动时的默认命令,不能被 docker run 轻易覆盖,可以看到加参数2还是执行了 echo 1 然后2,不会被打断
在这里插入图片描述
而CMD会被打断,从而有报错(一杯覆盖)
在这里插入图片描述
替代的效果
在这里插入图片描述
常用会这么用:(不填,参数默认1,填参数那就是所填的参数,占位符的作用)
在这里插入图片描述
⑦ADD 类似于 COPY,但还支持 URL 和自动解压压缩文件。(一般不会用来解压包,一般是RUN tar -xvf )

#拷贝后解压
COPY   .   /app/
ADD  ./docs.tar.gz  /app/

⑧LABEL \ EXPOSE \ VOLUME
在这里插入图片描述
1)LAYBEL添加元数据到镜像,例如作者、版本等。就是注释
2)expose 声明容器监听的端口,但并不会实际映射到主机,把容器的5000端口暴露出来,这可以看到容器外面调用的端口是5001
在这里插入图片描述

3)VOLUME 创建挂载点,用于持久化数据。就是-v的参数,可以看到下面./docs目录与容器内也就是/app/docs挂载在一起了
在这里插入图片描述
但是这样有误删除的风险
一般是创建卷吗,如下(这个卷是docker自己维护的,可以跨容器进行通信)
在这里插入图片描述

⑨ARG与ENV
ARG 构建容器中使用的环境变量,
ENV 运行中使用的环境变量,

env查看环境变量
在这里插入图片描述
可以在构建的时候传参数来修改
在这里插入图片描述
⑩HEALTHCHECK :定时任务,检测容器是否运行
在这里插入图片描述
不断执行这个命令,没有反馈就表示错误了(10s执行一次,超时3秒,超时连续3次)

2)dockerfile示例

FROM python:3.10-slim LABEL maintainer="panhu"
LABEL version=1.0
LABEL desc="A docker bigv"WORKDIR /appARG APP_VER=1.0
ENV APP_ENV=1.0COPY . /app/
EXPOSE 5000ENV FLASK_RUN_HOST=0.0.0.0
ENV FLASK_RUN_PORT=5000HEALTHCHECK --interval=10s --timeout=3s --retries=3 CMD curl --fail http://localhost:5000/ || exit 1RUN pip install flaskCMD ["python", "app.py"]

3)构建镜像命令

#起别名d1
docker build -t my-app .

四、volume

五、network

六、docker-compose

七、proxy

相关文章:

docker与大模型(口语化原理和实操讲解)

文章目录 一、镜像images1)下载安装2)docker images相关命令(保存、删除、上传、别名、搜索镜像) 二、容器container1)展现所有在跑的容器服务ps2)start /restart / kill / stop /rm3)exec /cp4)run/create…...

Linux之vim模式下全选命令

在Linux系统中,使用Vim编辑器进行全选操作可以通过以下几种方式实现: 1.使用键盘快捷键 按下 ”ggVG”(先按下”g”,再按下”g”,再按下”V”,最后按下”G”)可以全选当前文件内容。其中 ”g…...

云原生周刊:Kubernetes v1.32 要来了

开源项目推荐 Woodpecker Woodpecker 是一款轻量级且功能强大的 CI/CD 引擎,以其高度可扩展性和易用性著称。它支持多种版本控制系统与编程语言,能够灵活适配不同开发流程,帮助团队实现高效的持续集成与交付。无论是个人项目还是大型团队&a…...

# JVM学习

JVM JVM是什么? Java虚拟机(JVM) 是一个抽象的计算机,它是一个运行时环境,用于执行Java字节码或编译后的Java程序。JVM屏蔽了底层操作系统的差异,使得Java程序可以在任何支持JVM的操作系统上运行。 JVM能…...

【代码随想录day33】【C++复健】62.不同路径;63. 不同路径 II;343. 整数拆分;96.不同的二叉搜索树

感觉dp的题真的很适合背,当然不是死记硬背,而是当做一种模板题,出来一道新的题就往模板题上面去靠,如果套对模板的话剩下的事情其实就简单了。所以只要看一遍解法知道大致思路其实就够了,毕竟大部分dp的代码也不算难写…...

《勇者斗恶龙3:HD-2D重制版》找幽灵船攻略分享

《勇者斗恶龙3:HD-2D重制版》中的幽灵船是游戏里非常独特的一个区域,而想要找到幽灵船的话还是比较麻烦的,首先是听到关于幽灵船在世界海域上航行的传闻,包括在海盗巢穴中,但幽灵船的出现有一些具体条件。 勇者斗恶龙3…...

基于 MATLAB 的模拟退火算法详解及实现

以下是一篇更详细的关于 模拟退火算法 (Simulated Annealing) 的 MATLAB 实现的教程和代码示例,涵盖基本概念、核心思想和代码实现。 一、模拟退火算法简介 模拟退火算法(Simulated Annealing,简称 SA)是一种随机优化算法&#x…...

MQTT 服务器常用的有哪些?

MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,常用于物联网(IoT)设备之间的通信。以下是一些常用的 MQTT 服务器(也称为 MQTT Broker): 1.Eclipse Mosqui…...

【android USB 串口通信助手】stm32 源码demo 单片机与手机通信 Android studio 20241118

android 【OTG线】 接 下位机STM32【USB】 通过百度网盘分享的文件:USBToSerialPort.apk 链接:https://pan.baidu.com/s/122McdmBDUxEtYiEKFunFUg?pwd8888 提取码:8888 android 【OTG线】 接 【USB转TTL】 接 【串口(下位机 SMT32等)】 需…...

汽车资讯新探索:Spring Boot技术引领

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了汽车资讯网站的开发全过程。通过分析汽车资讯网站管理的不足,创建了一个计算机管理汽车资讯网站的方案。文章介绍了汽车资讯网站的系统分析部分&…...

简单的MCU与FPGA通过APB总线实现通讯(fpga mcu APB):乘法器为例

测试平台: GW1N4器件内置 M1内核;并且可以设置 APB总线与fpga 逻辑进行交互; 框图: +---------------------+ | | | M1 Microprocessor | <-----------------+ | | | | +-----------------…...

css uniapp背景图宽度固定高度自适应可以重复

page {height: 100%;background-image: url(https://onlinekc.a.hlidc.cn/uploads/20241115/350f94aaf493d05625a7ddbc86c7804e.png);background-repeat: repeat;background-size: contain;} 如果不要重复 把background-repeat: repeat;替换background-repeat: no-repeat;...

深度学习--优化器

笔记内容侵权联系删 优化器 在梯度下降算法中&#xff0c;有各种不同的改进版本。在面向对象的语言实现中&#xff0c;往往把不同的梯度下降算法封装成一个对象&#xff0c;称为优化器。 算法改进的目的&#xff0c;包括但不限于: 加快算法收敛速度; 尽量避过或冲过局部极值; …...

【嵌入式】关于push老仓库到新仓库的方法

1. 背景 公司项目经常会有需要从开源项目中镜像代码过来的活,所以常常会在自己的服务器上创建一个对应的仓库,然后使用命令将期push过去。为方便日后抄命令,这里记录一下使用的命令。 2. 操作步骤 2.1. 已下载的代码push 特别提醒: 使用此脚本前请确保你修改的代码已保存…...

从线下到线上,上门洗衣服务如何实现智能化升级?

在现代快节奏生活的推动下&#xff0c;上门洗衣服务作为一种新兴的服务模式正逐渐崭露头角。它以其便捷性和创新性&#xff0c;改变了传统洗衣行业的格局&#xff0c;为消费者提供了全新的选择&#xff0c;同时也为洗衣品牌带来了新的机遇与挑战。 一、上门洗衣服务的市场现状1…...

SQL字段来源表的解析

测试例子&#xff1a; SELECT e.NAME, d.DEPT_NAME,d.DEPT_ID,EMP_ID,100EMP_ID100 FROM EMP e JOIN DEPT d ON e.DEPT_ID d.DEPT_ID WHERE e.EMP_ID IN (SELECT EMP_ID FROM EMP WHERE DEPT_ID 10) 代码示例&#xff1a; package com.test; import org.apache.calcite.jd…...

理解 Python 解释器:CPython 与 IPython 的比较及选择指南

理解 Python 解释器&#xff1a;CPython 与 IPython 的比较及选择指南 在选择适合自己需求的 Python 解释器时&#xff0c;理解 CPython 和 IPython 之间的主要差异至关重要。本文将详细解释 CPython 和 IPython 的特性、优势和适用场景&#xff0c;以帮助用户做出明智的选择。…...

Java NIO 深度解析:构建高效的 I/O 操作

在 Java 编程领域&#xff0c;I/O 操作一直是至关重要的部分&#xff0c;它直接影响着应用程序的性能和响应能力。Java NIO&#xff08;New I/O&#xff09;作为传统 I/O 的增强版本&#xff0c;为处理大量并发连接和高效的数据传输提供了更强大的工具和机制。本文将深入探讨 J…...

总结拓展十六:特殊采购业务——VMI采购模式

1、VMI的定义 VMI采购模式&#xff08;Vendor Managed Inventory&#xff09;是一种合作性策略&#xff0c;旨在通过供应商管理库存&#xff0c;使供应链中的企业和供应商双方都能获得最低成本。‌在这种模式下&#xff0c;供应商根据共享的用户企业库存和实际耗用数据&#x…...

vue2 + iview(view-design) 中封装使用 vxe-table 处理表格渲染大量数据卡顿现象

今天遇到需求&#xff0c;iview组件分页每页100页时候页面卡顿现象严重&#xff0c;改造为使用vxe-table cell-mouseenter"handleCellMouseEnter" cell-mouseleave"handleCellMouseLeave" 这两个用来处理vxe-table 内容过多鼠标悬浮上去滚动 tooltip直接…...

初学者指南:知识库问答(KBQA)多跳路径的核心与应用

初学者指南&#xff1a;知识库问答&#xff08;KBQA&#xff09;多跳路径的核心与应用 知识库问答&#xff08;Knowledge Base Question Answering, KBQA&#xff09;旨在利用结构化知识库&#xff08;如Wikidata、Freebase&#xff09;回答自然语言问题。在实际应用中&#x…...

创建springboot+vue项目相关配置问题

安装并配置jdk23 在官网下载jdk Java Downloads | Oracle 中国 下载完成后双击即可安装。 安装完成后配置环境变量 此电脑->右键->属性->高级系统设置 然后一直点击确定即可。 键盘上win r java -version 可以验证是否配置成功 下载并配置maven 在官网下…...

基于AOA算术优化的KNN数据聚类算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于AOA算术优化的KNN数据聚类算法matlab仿真。通过AOA优化算法&#xff0c;搜索最优的几个特征数据&#xff0c;进行KNN聚类&#xff0c;同时对比不同个数特征下…...

【机器学习】在泊松分布中,当λ值较大时,其近似正态分布的误差如何评估?

在泊松分布中&#xff0c;当参数 λ 较大时&#xff0c;其近似正态分布的有效性可以通过 中心极限定理 和误差分析来理解和评估。以下内容结合理论推导和实际案例展开说明&#xff1a; 1. 泊松分布的定义 泊松分布是用于建模单位时间或单位空间内随机事件发生次数的概率分布&a…...

ABAP开发-面向对象开发_2

系列文章目录 文章目录 系列文章目录[TOC](文章目录) 前言接口和类1、首先创建一个接口2、在创建的接口的基础上创建一个类PERSON3、创建子类STUDENT4、创建子类TEACHER5、SE38使用创建的类 总结 前言 接口和类 全局类 SE24 创建一个接口-》创建一个实现接口的类-》再创建两个…...

微信小程序-prettier 格式化

一.安装prettier插件 二.配置开发者工具的设置 配置如下代码在setting.json里&#xff1a; "editor.formatOnSave": true,"editor.defaultFormatter": "esbenp.prettier-vscode","prettier.documentSelectors": ["**/*.wxml"…...

241118学习日志——[CSDIY] [ByteDance] 后端训练营 [06]

CSDIY&#xff1a;这是一个非科班学生的努力之路&#xff0c;从今天开始这个系列会长期更新&#xff0c;&#xff08;最好做到日更&#xff09;&#xff0c;我会慢慢把自己目前对CS的努力逐一上传&#xff0c;帮助那些和我一样有着梦想的玩家取得胜利&#xff01;&#xff01;&…...

Android WMS概览

WMS&#xff08;WindowManagerService&#xff09;是 Android 系统的核心服务&#xff0c;负责管理应用和系统的窗口&#xff0c;包括窗口的创建、销毁、布局、层级管理、输入事件分发以及动画显示等。它通过协调 InputManager 和 SurfaceFlinger 实现触摸事件处理和窗口渲染&a…...

新一代API开发工具,让API调试更快 更简单

新一代API开发工具 代理调试 请求测试一站式解决方案 Reqable Fiddler Charles Postman, 让API调试更快 &#x1f680; 更简单 &#x1f44c; 直接上下载地址 根据系统,下载对应的版本即可 https://reqable.com/zh-CN/download/...

友元类和友元函数

友元函数的定义: 友元函数是在类定义中被声明为 “朋友” 的非成员函数。它可以访问类的私有成员和保护成员(变量和方法)&#xff0c;就好像它是类的成员函数一样。友元函数的声明以friend关键字开头&#xff0c;在类的内部进行声明&#xff0c;但它的定义在类的外部&#xff…...

做网站哪些技术/百度seo排名360

2019独角兽企业重金招聘Python工程师标准>>> 准备域名和证书 任务时间&#xff1a;20min ~ 40min 小程序后台服务需要通过 HTTPS 访问&#xff0c;在实验开始之前&#xff0c;我们要准备域名和 SSL 证书。 域名注册 如果您还没有域名&#xff0c;可以在腾讯云上选购…...

网站服务器租赁合同/百度搜索引擎介绍

根据三个坐标点以及三个坐标点的半径( x1 , y1 ) , d1 , ( x2 , y2 ) , d2 , ( x3 , y3 ) , d3&#xff0c;即可求得三个点的交点 ( x0 , y0 ) 。 通过勾股定理可得出&#xff1a; Math.power((x1 - x0), 2) Math.power((y1 - y0), 2) Math.power(d1, 2);Math.power((x2 - x…...

wordpress 做cms/网站推广开户

使用Chrome自带的Javascript调试工具。 1. 将写好的Javascript代码用chrome打开 在页面&#xff0c;单击右键&#xff0c;并且选择“审查元素” 弹出窗体&#xff0c;如图所示&#xff1a; 2. 然后&#xff0c;点击“Resources”标签&#xff0c;如图所示&#xff1a; 3. 然…...

做网站需要注意事项/宁波seo外包服务

MongoDB隐藏技能&#xff1a;如何重命名数据库 问题产生的背景 最近Java组的同事向我请教了一个问题&#xff0c;就是他们发现Navicat中对mysql之类的数据库都有重命名DB名字的功能&#xff0c;但是针对mongodb竟然没有这个功能&#xff0c;作为强迫症的开发者&#xff0c;不能…...

订阅号怎么做免费的视频网站/网站搜索排名

内存页表 1&#xff0c;在日常使用的Linux和Windows系统下&#xff0c;程序不能直接访问物理内存&#xff0c;内存通常分为固定大小的页&#xff0c;通过虚拟内存(Virtual Address)到物理内存(Physical Address)的映射&#xff0c;访问实际存储数据的物理内存位置。 2&#xff…...

建筑工程发布网站/永州网站seo

包含头文件&#xff1a;stdlib.h 函数原型 用法&#xff1a;将字符串里的数字字符转化为整形数。返回整形值。 注意&#xff1a;转化时跳过前面的空格字符&#xff0c;直到遇上数字或正负符号才开始做转换&#xff0c;而再遇到非数字或字符串结束时(’/0’)才结束转换&#…...