Docker自定义镜像

为什么要自定义镜像,因为公共镜像很难满足日常开发需求,一般会作修改。
容器是暂时的,这是对它的定位,当我们对容器进行个性化修改的时候,后期删除容器,再启动一个容器,我们的个人化修改全部都没了。所以要将容器的个性化修改commit成镜像,即使容器删除,再使用镜像重新启动一个就可以了

docker目前镜像的制作有2种方法:

基于Docker Commit制作镜像
基于dockerfile制作镜像,Dockerfile方式为主流的制作镜像方式

1、Commit构建自定义镜像

简介:对容器的修改以及保存

启动并进入容器:docker run -it centos:7 /bin/bash

在/home 路径下创建fb文件夹:mkdir /home/fb

安装ifconfig命令:yum -y install net-tools

重启容器,查看容器的fb文件夹还在不在:docker restart [c_id]

fb文件还在

删除容器,再重新启动一个容器进入查看有没有fb文件夹:docker rm [c_id]&& docker run -it centos:7 /bin/bash

fb文件不在

构建镜像

docker commit [c_id] mycentos:tag

docker commit -a "fb" -m "mkdir /home/fb" [c_id] mycentos:tag

-a:标注作者

-m:说明注释

查看详细信息:docker inspect [c_id]

在这里插入图片描述

启动容器:docker run -itd [c_id] /bin/bash

进入容器查看:docker exec -it [c_id] /bin/bash

含有 fb文件

2、Dockerfile构建镜像

Dockerfile构建镜像

Dockerfile

# this is a dockerfile 
FROM centos:7 
MAINTAINER XD 163@163.com
RUN echo "正在构建镜像!!!" 
WORKDIR /home/fb 
COPY 123.txt /home/fb 
RUN yum install -y net-tools

构建:docker build -t mycentos:v2 .

查看:docker images

进入验证:验证成功

在这里插入图片描述
在这里插入图片描述

Docker镜像分层结构剖析

在这里插入图片描述
共享资源
对容器的任何改动都是发生容器层
容器层是可写可读,而镜像层只读 在这里插入图片描述
在这里插入图片描述

Dockerfile基础指令

简介:一些常用的Dockerfile指令

FROM

基于哪个镜像

MAINTAINER

注明作者

COPY

复制文件进入镜像(只能用相对路径,不能用绝对路径)

ADD

复制文件进入镜像(假如文件是.tar.gz文件会解压)

ADD

复制文件进入镜像(假如文件是.tar.gz文件会解压)

ENV

设置环境变量

EXPOSE

暴露容器端口

RUN

在构建镜像的时候执行,作用于镜像层面

ENTRYPOINT

在容器启动的时候执行,作用于容器层,dockerfile里有多条时只允许执行最后一条

CMD

在容器启动的时候执行,作用于容器层,dockerfile里有多条时只允许执行最后一条
容器启动后执行默认的命令或者参数,允许被修改

命令格式:

shell命令格式:RUN yum install -y net-tools
exec命令格式:RUN [ “yum”,“install” ,"-y" ,“net-tools”]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值