“ 今天说说overlay,并且制作一个炒鸡简单的Docker镜像”
小鲸鱼有大能量
01.Overlayfs存储驱动
Overlay是一种联合文件系统,设计简单,速度更快。Overlayfs在Linux主机上只有两层,一个目录在下层,用来保存镜像,另外一个目录在上层,用来存储容器信息。在overlayfs中,底层的目录叫做lowerdir,顶层的目录叫做upperdir,对外提供统一的文件系统为merged。
从图中可以看出,与前面rootfs镜像里说的一样,镜像层(lowerdir)和容器层(upperdir)可以保存相同的文件,容器层的文件会覆盖镜像层的文件。
02.做一个镜像
下面一起来从头做一个Docker镜像
首先使用flask写一个简单的web应用
非常简单的flask,小伙伴们很容易就能够看明白吧。
添加依赖文件
在同级目录下创建requirements.txt文件添加依赖,
$cat requirements.txt
Flask
下面开始容器化,编写Dockerfile文件
使用Dockerfile,在同级目录创建Dockerfile文件,内容如下
# 使用官方提供的Python开发镜像作为基础镜像
FROM python:3.6-slim
# 切换目录至 /app
WORKDIR /app
# 将当前目录下的所有内容复制到 /app下
ADD . /app
# 使用pip 命令安装依赖包
RUN pip install --trusted-hostpypi.python.org -r requirements.txt
# 允许外界访问容器的80端口
EXPOSE 80
# 设置环境变量
ENV NAME World
#设置容器启动进程
ENTRYPOINT python3 app.py
最后制作镜像
使用docker build制作镜像
$ docker build –t test_web .
查看images
$docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test-web latest 8254a41d2f19 4 days ago 147MB
启动容器
$ docker run –p 4000:80 test_web
访问web服务
$curl http://localhost:4000
<h3>HelloWorld!</h3><b>Hostname:</b>db7e48f83dbc<br/>
到这里,小小的镜像就制作完成啦。
03. 下期预告
后面就要进入Kubernetes的学习了,希望自己能够坚持下去,也希望小伙伴们能够一起前进!
如果喜欢我的文章,那就关注我吧!
万分感谢!