制作最小化centos7镜像

卸载不必要的软件

yum remove -y iwl* *firmware* --exclude=kernel-firmware

干掉yum源

yum clean all 
rm -rf /var/cache/yum

打包文件系统

tar --numeric-owner --exclude=/proc --exclude=/sys --exclude=/mnt --exclude=/var/cache --exclude=/usr/share/{foomatic,backgrounds,per15,fonts,cups,qt4,groff,kde4,icons,pixmaps,emacs,gnome-background-properties,sounds,gnome,games,desktop-directories} --exclude=/var/log -zcvf /mnt/Centos7-Image.tar.gz /
cat Centos7-Image.tar.gz | docker import - centos-tar:7.9

或者我们可以使用docker commit制作

生产环境一般不用自己打包的,太麻烦,体积太大,可以在docker官方镜像的基础上去封装一些需要的业务
然后退出容器后使用命令来保存该镜像

docker commit <容器名> <你要保存的新的镜像名>

缺点:功能性缺失(元数据封装)

或者使用Dockerfile制作:

dockerfile build -t <镜像名> .

Dockerfile文件的文件名严格遵守大小写 别写成dockerfile了
下边是一个Dockerfile文件参数详解

FROM (指定基础Image)
MAINTAINER MAINTAINER zhangchenchen@88.com    #用来指定镜像创建者信息 ,可写可不写
LABEL version="1.0"   #将元数据添加到镜像	 如果LABEL值中包含空格,就要使用引号和反斜杠
RUN ["/bin/bash","-c", "echo hello"]    #安装软件用,执行命令用  
RUN yum -y install xxx
RUN cd /tmp && curl -L 'http://archive.apache.org/dist/tomcat/tomcat-7 |tar -xz
USER daemon #设置container容器的用户  设置启动容器的用户,像elasticserch就需要工作在非root用户下。  
EXPOSE 22     #指定容器需要映射到宿主机机器的端口,其实是一个声明需要暴露的端口
ADD /HostPath/ContainerPath    #将当前目录下的文件放在容器内部,前者是被构建目录的相对路径,后者是绝对路径,而且目标源文件如果是个压缩包的话,ADD还可以帮解压。
ENV JAVA_HOME /path/to/java/dirent  #设置环境变量,设置了之后,后续的RUN命令都可以使用,容器启动后,可以通过docker run --env key=value时设置或修改环境变量。假如你安装了JAVA程序,需要设置JAVA_HOME,那么可以在Doxkerfile中这样写
COPY <源文件>/<目标文件>   #这个跟ADD作用一样,只不过不会自动解压。
VOLUME 指定挂载点
WORKDIR /home        #切换目录 
CMD echo "Hello, world!"   #设置容器启动时执行的操作,该操作可以是执行自定义脚本,也可以是执行系统命令。该指令只能在文件中存在一次,如果有多个,则只执行最后一条。
ENTRYPOINT tail -f /1.log     #设置container启动时执行的操作,可以设置多次,但是只有最后一个有效
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个真正的幔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值