下载的docker镜像中,可能存在缺少某些命令的镜像,需要通过自定义镜像来为它增添这些功能
docker容器的启动依靠镜像中的dockerfile文件
docker的自定义镜像本质上就是基于已有镜像生成临时容器,在临时容器中增添自己想要的命令/变量/文件,再导出制作成新的镜像
以下为一个例子:
docker pull hub.c.163.com/library/centos //下载centos的镜像
docker run -it --rm hub.c.163.com/library/centos //运行并进入一个临时容器
[容器内部]ifconfig //此时报错,没有这条命令
处理办法:
先写一个Dockerfile文件,内容如下:
FROM hub.c.163.com/library/centos //指定原镜像
MAINTAINER mine //指定作者,名称随意
RUN yum install net-tools -y //安装net-tools包(包含ifconfig)
CMD ["/bin/bash"] //指定CMD
保存退出
docker build -t test /temp //编译生成新的镜像。-t:重命名 /temp:指定文件夹位置 -f(可选):若前面写的文件名不是Dockerfile,用-f来指定文件名
再次创建容器centos,发现ifconfig已可用
Dockerfile文件中可用参数:
ADD:将本机文件拷贝到容器中