基本原理
1、镜像是什么
镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。
2、Docker加载镜像的原理(以free5gc为例)
Docker镜像实际上由一层一层的文件系统组成,简称:UnionFS
第一层:bootfs,主要bootloader和kernel,bootloader主要引导加载kernel
第二层:rootfs,在bootfs之上,对应操作系统(最小操作系统)
第三层:free5gc所依赖的包
第四层:free5gc源码
镜像制作
1、commit方式
docker commit命令用于基于一个容器来创建一个新的docker镜像,制作过程不透明,别人拿到镜像之后感知不到镜像的layer信息,不建议用这种方式。具体制作方法可参考:https://blog.csdn.net/guesshat/article/details/109404560
2、Dockerfile方式
(1)从远程仓库加载镜像
(2) 从本地代码制作镜像
(3) 静态可执行文件制作镜像
FROM scratch
ADD amf / #静态可执行文件
CMD ["/amf"]
(4) kube5gnfvo镜像制作
FROM python:3.6.9
RUN apt-get update -y
RUN apt-get install -y libssl-dev python3 python python3-pip
RUN apt-get install default-libmysqlclient-dev
RUN pip3 install git+https://github.com/yanyan8566/client-python
RUN pip3 install --upgrade setuptools
ADD ./kube5gnfvo /usr/src/app #Dockerfile和kube5gnfvo在统一目录下
WORKDIR /usr/src/app
RUN pip3 install -r requirement.txt
网友评论