文章

Docker,多样化管理你的开发应用

我是手动分割线

众所周知,环境配置是一件非常麻烦的事情

对于python来说,anaconda就是他的专用环境包管理软件

对于node来说,nvm就是他的专用环境包管理软件

而Docker提供的功能要比上面说的更为强大,他的出现拯救了一大堆的Linux运维,再也不用担心跑什么应用报错了,直接运行别人的docker仓库就能直接开跑,爽的批爆

docker来源

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器或 Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

</p>

docker作用

Docker 的主要作用就是提供一种简单的方法来打包应用和它们的运行环境为一个轻量级、可移植的容器。然后这个容器可以在几乎任何流行的 Linux 机器或 Windows 机器上运行,无需进行任何系统修改。

dockerfile编写

Dockerfile 是一种文本文件,它包含了用户可以调用的一条条指令集,用户可以使用 Dockerfile 来创建自己的镜像。编写 Dockerfile 时,每一条指令都会在镜像上创建一个新的层,每一条指令的前缀都必须是大写的。

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Use an official Python runtime as a parent image
FROM python:3.7-slim

# Set the working directory in the container to /app
WORKDIR /app

# Add the current directory contents into the container at /app
ADD . /app

# Install any needed packages specified in requirements.txt
RUN pip install --trusted-host pypi.python.org -r requirements.txt

# Make port 80 available to the world outside this container
EXPOSE 80

# Run app.py when the container launches
CMD ["python", "app.py"]

与dockerfile有关的事情

Dockerfile 不仅可以用于创建新的 Docker 镜像,还可以用于更新和修改已有的 Docker 镜像。这使得 Dockerfile 成为了一种非常灵活和强大的工具,可以用于实现各种复杂的应用部署和配置任务。

此外,Dockerfile 还有一个重要的优点是可重复性。由于 Dockerfile 是一种文本文件,因此你可以将它添加到版本控制系统中,这样你就可以跟踪和记录 Dockerfile 的所有更改。这使得你可以轻松地回滚到旧的配置,或者在多个环境中重复使用相同的配置。

现在,许多云服务器厂商都开始提供 Serverless 服务,这种服务允许用户上传 Dockerfile,然后由云服务器厂商自动构建和部署应用。这大大简化了应用部署的过程,使得用户可以更加专注于应用的开发,而不是应用的部署和管理。

例如,AWS 的 ECS(Elastic Container Service)就是一种支持 Dockerfile 的 Serverless 服务。你只需要上传你的 Dockerfile 和应用代码,然后 ECS 就会自动为你构建 Docker 镜像,然后在 AWS 的弹性容器实例上运行你的应用。

这种 Serverless 服务的另一个优点是,它可以自动管理应用的扩展。当你的应用需要处理更多的流量时,ECS 可以自动启动更多的容器实例来分担负载。当流量减少时,ECS 可以自动关闭多余的容器实例,以节省资源和成本。

上传dockerfile跑大模型!!!!????

本文由作者按照 CC BY 4.0 进行授权