收集的linux命令/Docker命令/git命令
查看linux发行版本
lsb_release -a
显示操作系统的发行版号
uname -r
1. 启动 Docker。
sudo systemctl start docker
2. 通过运行映像来验证 Docker 引擎安装是否成功。hello-world
sudo docker run hello-world
查看docker版本
docker -v
查看docker配置信息
docker info
dockerfile文件介绍
Dockerfile 是一个用来构建镜像的文本文件,没有文件后缀名
,可以直接使用文本编辑器来编写,就像shell脚本的[xxx.sh]文件,只是没有.sh作为后缀名。
编写 Dockerfile 是创建 Docker 镜像的核心步骤,了解每个指令的作用和用法可以帮助你更好地构建和优化 Docker 镜像。在实际应用中,你可以根据需求选择合适的基础镜像,合理使用指令,结合优化技巧,构建出高效、安全的 Docker 镜像。希望这篇文章能帮助你更好地理解和编写 Dockerfile。
创建Dockerfile
# 1、FROM 指令指定什么镜像作为基础镜像。每个 Dockerfile 必须以 FROM 开头。
# FROM [指定什么镜像作为基础镜像] 例如:
FROM [python:latest]
FROM python:3.9# 2、LABEL 指令用于添加元数据,如维护者信息、版本号等。
# 添加维护者信息
LABEL maintainer="yourname@example.com"# 添加版本信息
LABEL version="1.0"
LABEL description="This is a sample application."# 3、ENV 指令用于设置环境变量。
ENV [环境变量添加]
# 例如:
ENV APP_ENV=production
ENV DEBUG=false# 4、RUN 指令用于在镜像构建过程中执行命令。通常用于安装软件包、执行脚本等。
RUN <command>
# 例如:
RUN [制作镜像过程中执行linux语句]
RUN [下载]
RUN [linux命令]# 使用临时安装源来安装插件
RUN [pip install redis-py -i # 安装 nginx
RUN apt-get update && apt-get install -y nginx# 运行脚本
RUN /path/to/script.sh# 安装 Python 包
RUN pip install -r requirements.txt https://pypi.tuna.tsinghua.edu.cn/simple/]
# 注意:对于安装多个软件包的情况,通常会将多个命令合并成一条 RUN 指令,以减少构建层数。
RUN [<语句> && <语句> && <语句>] 尽量用一条RUN,因为每一条RUN都会被打包一次
例如:
RUN apt-get update && \apt-get install -y nginx curl vim# 5、COPY 指令用于将文件或目录从主机复制到镜像中。
COPY <src> <dest>
<src>:要复制的文件或目录的路径。
<dest>:镜像中的目标路径。
例如:
# 复制当前目录下的所有文件到 /app 目录
COPY . /app# 复制特定文件
COPY config.yml /etc/myapp/config.yml# 6、ADD 指令与 COPY 类似,但支持更多功能,如自动解压 tar 文件和从 URL 下载文件。
ADD [复制 主机-容器]
ADD <src> <dest>
例如:
# 直接复制文件
ADD [/home/a.txt /home/b.txt]
# 将宿主机的 a.txt 文件复制到容器的 /home/b.txt 位置,复制后两者内容完全相同。因此,容器中的 b.txt 实际上就是 a.txt 文件的副本。# 解压文件并复制
ADD myapp.tar.gz /usr/src/app# 下载:从 URL 下载文件
ADD [下载 网络文件-容器]
ADD [http://www.a.com/a.txt /home/b.txt]# 7、WORKDIR 指令用于设置工作目录。后续指令(如 RUN、CMD、COPY 等)将在此目录中执行。
WORKDIR <path>
例如:
# 设置工作目录为 /app,这个目录的设置就见仁见智,有的喜欢用project,有的喜欢什么都不设,看公司规范和个人习惯。我们只需要确保后续的文件操作都是基于这个工作目录的。
WORKDIR /app# 8、EXPOSE 指令用于声明容器运行时监听的端口。该指令仅用于文档说明,不会真正地打开端口。
EXPOSE <port> [<port>/<protocol>...]
<port>:要暴露的端口号。
<protocol>:可选,指定协议(默认是 tcp)
EXPOSE [端口映射,会被docker run -P覆盖]
例如:
# 暴露端口 80
EXPOSE 80
EXPOSE 80/tcp# 暴露端口 8080 声明容器在运行时应该监听 8080 端口。
EXPOSE 8080
# 暴露端口 8080,使用 TCP 协议
EXPOSE 8080/tcp# 9、CMD 指令用于指定容器启动时执行的命令。每个 Dockerfile 只能有一个 CMD 指令,若有多个 CMD 指令,只有最后一个生效。
CMD [运行起容器后执行语句,会被docker run <语句>覆盖]
CMD ["executable", "param1", "param2"]
例如:
CMD ["pwd"]
CMD pwd# 使用 shell 形式
CMD ["nginx", "-g", "daemon off;"]# 使用 shell 格式
CMD nginx -g "daemon off;"# 使用默认命令启动
CMD ["python", "app.py"]
CMD ["py","manage.py","runserver","0.0.0.0:8080"]
dockerfile示例:构建简单的 Python 应用
# 使用官方 Python 3.9 镜像作为基础镜像
FROM python:3.9# 设置工作目录
WORKDIR /app# 复制当前目录下的所有文件到工作目录
COPY . .# 安装依赖
RUN pip install -r requirements.txt# 暴露应用端口
EXPOSE 5000# 设置容器启动命令
CMD ["python", "app.py"]
参考:
【Docker】Dockerfile 文件编写
python项目 以docker形式打包部署全流程
5 分钟,教你用 Docker 部署一个 Python 应用
git lfs pull
git lfs pull命令会从远程仓库中获取所有缺失的Git LFS对象,并将这些对象应用到你的工作目录中。如果你的工作目录中已经存在了这些对象,那么git lfs pull命令会跳过这些对象。
git lfs pull提速
使用 Git LFS 的批量下载功能,可以通过命令 git lfs fetch --all 来实现。
git lfs fetch --all
使用 Git LFS 的并发下载功能,可以通过命令 git config --global lfs.concurrenttransfers 10 来设置并发下载数。
git config --global lfs.concurrenttransfers 10
上面两个命令链接:链接
相关文章:

收集的linux命令/Docker命令/git命令
查看linux发行版本 lsb_release -a显示操作系统的发行版号 uname -r1. 启动 Docker。 sudo systemctl start docker2. 通过运行映像来验证 Docker 引擎安装是否成功。hello-world sudo docker run hello-world查看docker版本 docker -v查看docker配置信息 docker infodoc…...

DNS域名解析实验
准备工作 [rootlocalhost ~]# setenforce 0 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# mount /dev/sr0 /mnt [rootlocalhost ~]# dnf install bind -y DNS正向解析: 对主配置文件进行修改 [rootlocalhost ~]# vim /etc/named.conf 正向解析…...

Dify 本地部署指南
一、前置条件 Clone Dify 代码: git clone https://github.com/langgenius/dify.git 在启用业务服务之前,我们需要先部署 PostgresSQL / Redis / Weaviate(如果本地没有的话),可以通过以下命令启动: cd…...

15分钟学 Go 第 38 天:数据库基础
第38天 - 数据库基础 学习目标 学习如何连接和操作数据库,包括基本的增、删、改、查功能,以及如何使用Go语言中的database/sql包进行数据库交互。 内容概述 在现代应用程序中,数据库是数据持久化的重要部分。Go语言通过database/sql包提供…...

【Python】图片处理
一、获取图片尺寸 优点缺点Pillow功能丰富,支持多种图像处理操作。使用简单,适合快速原型开发。对于处理大型图像或批量图像时,性能可能不如OpenCV。OpenCV性能强大,适合处理大型图像和视频处理。提供了丰富的计算机视觉算法。相…...

面相小白的php反序列化漏洞原理剖析
前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文整理反序列化漏洞的一些成因原理 建议学习反序列化之前 先对php基础语法与面向对象有个大体的了解 (我觉得我整理的比较细致,了解这俩是个啥就行) 漏洞实战情况 这个漏洞黑盒几乎不会被发现&am…...

文本转SQL(Text-to-SQL),场景介绍与 Spring AI 实现
在众多的 AI 大模型的应用场景中,Text-to-SQL,也就是文本转 SQL,是其中实用性很高的一个。Text-to-SQL 充分利用了大模型的优势,把用户提供的自然语言描述转换成 SQL 语句,还可以执行生成的 SQL 语句,再把查…...

科研绘图系列:R语言组合堆积图(stacked plot)
文章目录 介绍加载R包数据数据预处理画图1画图2组合图形系统信息介绍 堆积图(Stacked Chart),也称为堆叠图,是一种常用的数据可视化图表,主要用于展示不同类别的数据量在总体中的分布情况。堆积图可以是柱状图、条形图或面积图的形式,其中各个类别的数据量被叠加在一起,…...

YOLOv11及自研模型更新汇总
YOLOv11使用教程:YOLOv11入门到入土使用教程(含结构图) 缝合教程:深度学习模块创作(缝合)教程|适合1-360月小宝宝食用,干货满满 YOLO中的yaml文件详解:https://xy2668825911.blog.csdn.net/article/details…...

系统安全架构
一个完整的信息安全系统至少包含三类措施: 技术方面的安全措施, 管理方面的安全措施 相应的政策法律。 网络安全威胁 授权侵犯:为某一特权使用一个系统的人却将该系统用作其他未授权的目的。假冒:一个实体(人或系统)假装成另一个实体非法…...

Qt(程序打包)
Qt开发的程序最终都是要给用户使用的,用户的电脑上不可能装一个Qt的开发环境导入项目使用。因此项目项目开发完成后需要打包——制作成安装包,用户直接下载并安装即可使用。 1. 设置图标 设置图标的操作步骤如下: 1. 准备好图标文件ÿ…...

牛客sql题目总结(1)
1.第N高的薪水 AC: create function getnthhighestsalary(n int) returns int begindeclare m int; set m n - 1; return (select distinct salaryfrom employeeorder by salary desclimit m, 1); end 2.平均播放进度大于60%的视频类别 AC: select tb_video_info…...

RocketMQ 自动注入消费者
目录 前言一、情景介绍二、问题分析三、代码实现 前言 之前接到一个需求,我们项目的技术负责人希望通过配置的形式,在项目启动的时候自动根据配置生成对应的消费者 觉得还有点意思,随即记录一下~ 一、情景介绍 比如我这里有一个消费者 Mes…...

RibbitMQ-安装
本文主要介绍RibbitMQ的安装 RabbitMQ依赖于Erlang,因此首先需要安装Erlang环境。分别下载erlang-26.2.5-1.el7.x86_64.rpm、rabbitmq-server-4.0.3-1.el8.noarch.rpm 官网地址:https://www.rabbitmq.com/ 官网文档:https://www.rabbitmq.c…...

非计算机背景但是想从事医学AI研究,需要掌握的编程语言|个人观点·24-11-08
小罗碎碎念 目前,我们从事医学AI研究的,接触的最多的两种编程语言应该就是R和Python了。那么初学者很容易提出一个疑问,**我想从事医学AI相关的研究的话,应该学哪些编程语言呢?**在文章的开头,我可以先给出…...

内置函数【MySQL】
文章目录 日期函数字符串函数数学函数其他函数 日期函数 current_date函数用于获取当前的日期 mysql> select current_date(); ---------------- | current_date() | ---------------- | 2024-11-03 | ---------------- 1 row in set (0.00 sec)current_time函数用于获…...

RNA-seq 差异分析的点点滴滴(1)
引言 本系列[1])将开展全新的转录组分析专栏,主要针对使用DESeq2时可能出现的问题和方法进行展开。 为何使用未经标准化的计数数据? DESeq2 工具包在接收输入时,期望得到的是未经处理的原始计数数据,比如从 RNA-seq 或其他高通量测…...

Windows10/11开启卓越性能模式 windows开启卓越性能电源模式 工作电脑开启卓越性能模式 电脑开启性能模式
Windows10/11开启卓越性能模式 windows开启卓越性能电源模式 工作电脑开启卓越性能模式 电脑开启性能模式 1、所要用到的激活工具2、开启电脑卓越性能模式Windows11Windows10在电源模式中选择卓越性能模式 3、将系统版本切换为 工作站版本 1、所要用到的激活工具 KMS激活工具(…...

day20-21之间的项目实战:若依ruoyi开发(可以跳过)
一,项目概述 官网文档地址:http://doc.ruoyi.vip/ rouyi是一个后台管理系统,基于经典技术组合(spring boot,apache shiro,mybatis,thymeleaf)主要是让开发者注重专注业务࿰…...

双向链表及如何使用GLib的GList实现双向链表
双向链表是一种比单向链表更为灵活的数据结构,与单向链表相比可以有更多的应用场景,本文讨论双向链表的基本概念及实现方法,并着重介绍使用GLib的GList实现单向链表的方法及步骤,本文给出了多个实际范例源代码,旨在帮助…...

ProCalun卡伦纯天然万用膏,全家的皮肤健康守护
受季节交替、生活环境变化、空气污染等方面因素的影响,加上作息不规律导致的免疫力降低,我们或多或少会出现一些如湿疹、痤疮、瘙痒之类的皮肤问题,且反复概率很高。很多人盲目用药,甚至诱发激素依赖性皮炎。所以近年来࿰…...

FastAPI全方位分析:优劣尽显
近年来,随着技术的飞速发展,快速构建高性能API的需求越来越强烈。Python作为一个广泛使用的编程语言,也在这一领域下涌现出了许多优秀的框架。FastAPI便是其中一颗璀璨的新星。 FastAPI以其卓越的性能和独特的功能吸引了众多开发者。本文将深入剖析FastAPI的各个方面,详细…...

【rust】rust基础代码案例
文章目录 代码篇HelloWorld斐波那契数列计算表达式(加减乘除)web接口 优化篇target/目录占用一个g,仅仅一个actix的helloWorld demo升级rust版本, 通过rustupcargo换源windows下放弃吧,需要额外安装1g的toolchain并且要…...

【深度学习】PromptFix:多功能AI修图
PromptFix:你来提示,我们修图 NeurIPS 2024 最近,在计算机视觉和图像处理领域,一个名为PromptFix的新项目引起了广泛关注。PromptFix是一个基于PyTorch实现的开源项目,旨在根据用户的自然语言指令,对受损或需要处理的图像进行智能修复和优化。 本文将详细介绍PromptFix…...

2024最新AI绘画系统软件(Midjourney)+GPT4文档分析总结,多模态识图理解,AI文生图/图生图/混图生图(图像混合)
一、前言 人工智能的快速发展已成为全球关注的焦点,其应用领域广泛,涵盖绘图、语言处理、视频编辑等。前沿技术不仅推动科技创新,还在艺术创作、内容生产和商业实践等方面展示出巨大潜力。例如,AI语言模型显著提升了内容自动生成、…...

【信号处理】基于联合图像表示的深度学习卷积神经网络
Combined Signal Representations for Modulation Classification Using Deep Learning: Ambiguity Function, Constellation Diagram, and Eye Diagram 信号表示 Ambiguity Function(AF) 模糊函数描述了信号的两个维度(dimensions):延迟(delay)和多普勒(Doppler)。 …...

C#基础-区分数组与集合
目录 区分数组与集合 1.定义 1)数组 2)集合 2.大小 1)数组 2)集合 3.访问速度 1)数组 2)集合 4.内存管理 1)数组 2)集合 5.使用场景 1)数组 2࿰…...

ORACLE 19C 安装数据库补丁的详细过程
ORACLE 19c安装DB补丁: 1 确定OPatch的可用性:这里需要注意的是p6880880_190000_Linux-x86-64.zip是有版本对应区别的,需要注意你要打的补丁版本是否支持。 2 将原$ORACLE_HOME目录下的OPatch目录删除或者改名,比如说:…...

tensorflow案例5--基于改进VGG16模型的马铃薯识别,准确率提升0.6%,计算量降低78.07%
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 前言 本次采用VGG16模型进行预测,准确率达到了98.875,但是修改VGG16网络结构, 准确率达到了0.9969,并且计算量…...

代码中的设计模式-策略模式
假如我们有一段代码,有很多的if else function executeAction(type) {if (type A) {console.log(Action A);} else if (type B) {console.log(Action B);} else if (type C) {console.log(Action C);} else {console.log(Unknown action);} }executeAction(A); // 输出: Ac…...