自学内容网 自学内容网

收集的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

上面两个命令链接:链接


原文地址:https://blog.csdn.net/qq_45893319/article/details/143506597

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!