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

收集的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正向解析&#xff1a; 对主配置文件进行修改 [rootlocalhost ~]# vim /etc/named.conf 正向解析…...

Dify 本地部署指南

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

15分钟学 Go 第 38 天:数据库基础

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

【Python】图片处理

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

面相小白的php反序列化漏洞原理剖析

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

文本转SQL(Text-to-SQL),场景介绍与 Spring AI 实现

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

科研绘图系列:R语言组合堆积图(stacked plot)

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

YOLOv11及自研模型更新汇总

YOLOv11使用教程&#xff1a;YOLOv11入门到入土使用教程(含结构图) 缝合教程&#xff1a;深度学习模块创作&#xff08;缝合&#xff09;教程|适合1-360月小宝宝食用&#xff0c;干货满满 YOLO中的yaml文件详解&#xff1a;https://xy2668825911.blog.csdn.net/article/details…...

系统安全架构

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

Qt(程序打包)

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

牛客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&#xff1a; select tb_video_info…...

RocketMQ 自动注入消费者

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

RibbitMQ-安装

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

非计算机背景但是想从事医学AI研究,需要掌握的编程语言|个人观点·24-11-08

小罗碎碎念 目前&#xff0c;我们从事医学AI研究的&#xff0c;接触的最多的两种编程语言应该就是R和Python了。那么初学者很容易提出一个疑问&#xff0c;**我想从事医学AI相关的研究的话&#xff0c;应该学哪些编程语言呢&#xff1f;**在文章的开头&#xff0c;我可以先给出…...

内置函数【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])将开展全新的转录组分析专栏&#xff0c;主要针对使用DESeq2时可能出现的问题和方法进行展开。 为何使用未经标准化的计数数据&#xff1f; DESeq2 工具包在接收输入时&#xff0c;期望得到的是未经处理的原始计数数据&#xff0c;比如从 RNA-seq 或其他高通量测…...

Windows10/11开启卓越性能模式 windows开启卓越性能电源模式 工作电脑开启卓越性能模式 电脑开启性能模式

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

day20-21之间的项目实战:若依ruoyi开发(可以跳过)

一&#xff0c;项目概述 官网文档地址&#xff1a;http://doc.ruoyi.vip/ rouyi是一个后台管理系统&#xff0c;基于经典技术组合&#xff08;spring boot&#xff0c;apache shiro&#xff0c;mybatis&#xff0c;thymeleaf&#xff09;主要是让开发者注重专注业务&#xff0…...

双向链表及如何使用GLib的GList实现双向链表

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

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】

1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件&#xff08;System Property Definition File&#xff09;&#xff0c;用于声明和管理 Bluetooth 模块相…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧

上周三&#xff0c;HubSpot宣布已构建与ChatGPT的深度集成&#xff0c;这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋&#xff0c;但同时也存在一些关于数据安全的担忧。 许多网络声音声称&#xff0c;这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

通过MicroSip配置自己的freeswitch服务器进行调试记录

之前用docker安装的freeswitch的&#xff0c;启动是正常的&#xff0c; 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...

32位寻址与64位寻址

32位寻址与64位寻址 32位寻址是什么&#xff1f; 32位寻址是指计算机的CPU、内存或总线系统使用32位二进制数来标识和访问内存中的存储单元&#xff08;地址&#xff09;&#xff0c;其核心含义与能力如下&#xff1a; 1. 核心定义 地址位宽&#xff1a;CPU或内存控制器用32位…...

STL 2迭代器

文章目录 1.迭代器2.输入迭代器3.输出迭代器1.插入迭代器 4.前向迭代器5.双向迭代器6.随机访问迭代器7.不同容器返回的迭代器类型1.输入 / 输出迭代器2.前向迭代器3.双向迭代器4.随机访问迭代器5.特殊迭代器适配器6.为什么 unordered_set 只提供前向迭代器&#xff1f; 1.迭代器…...