Docker镜像管理
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,docker镜像的分层1.Dockerfile中的每个指令都会创建一个新的镜像层2.镜像层将被缓存和复用3.当Dockerfile的指令修改了,复制的文件变化了,或者构建镜像时指定的变量不同了,对应的
千家信息网最后更新 2026年11月01日Docker镜像管理
docker镜像的分层
1.Dockerfile中的每个指令都会创建一个新的镜像层2.镜像层将被缓存和复用3.当Dockerfile的指令修改了,复制的文件变化了,或者构建镜像时指定的变量不同了,对应的镜像层缓存就会失效4.某一层的镜像缓存失效之后,它之后的镜像层缓存都会失效5.镜像层是不可变的,如果在某一层中添加一个文件,然后在下一层中删除它,则镜像中依然会包含该文件Docker镜像的创建
Docker镜像
是应用发布的标准格式 可支撑一个Docker容器的运行Docker镜像的创建方法
基于已有镜像创建基于本地模板创建基于Dockerfile创建1.基于已有镜像创建
将容器里面运行的程序及运行环境打包生成新的镜像docker commit [选项] 容器ID/名称 仓库名称:[标签]选项:-m说明信息-a作者信息-p生成过程中停止容器的运行2.基于本地模板创建
通过导入操作系统模板文件生成新的镜像使用wget命令导,入为本地镜像Wqet http://download.openvz.org/template/ precreated/debian-7.0-x86-minimal.tar.gz导入成功后可查看本地镜像信息docker images |grep new3.基于FDockerfile创建
Dockerfile是由一组指令组成的文件Dockerfile结构四部分 基础镜像信息 维护者信息 镜像操作指令 容器启动时执行指令使用Dockerfile创建镜像并在容器中运行Dockerfile操作指令
| 指令 | 含义 |
|---|---|
| FROM镜像 | 指定新镜像所基于的镜像,第一条指令必须为FROM指令,每创建一个镜像就需要一条FROM指令 。 |
| MAINTAINER名字 | 说明新镜像的维护人信息 |
| RUN命令 | 在所基于的镜像上执行命令,并提交到新的镜像中 |
| CMD["要运行的程序","参数1","参数2"] | 指令启动容器时要运行的命令或者脚本,Dockerfile只能有一条CMD命令,如果指定多条则只能最后一条被执行 |
| EXPOSE端口号 | 指定新镜像加载到Docker时要开启的端口 |
| ENV环境变量 变量值 | 设置一个环境变量的值,会被后面的RUN使用 |
| ADD源文件/目录 目标文件/目录 | 将源文件复制到目标文件,源文件要与Dockerfile位于相同目录中, 或者是一个URL |
| COPY源文件/目录 目标文件/目录 | 将本地主机上的文件/目录复制到目标地点,源文件/目录要与Dockerfile在相同的目录中 |
| VOLUME["目录"] | 在容器中创建一个挂载点 |
| USER用户名/UID | 指定运行容器时的用户 |
| WORKDIR路径 | 为后续的RUN、CMD、ENTRYPOINT指定 工作目录 |
| ONBUILD命令 | 指定所生成的镜像作为一个基础镜像时所要运行的命令 |
| HEALTHCHECK | 健康检查 |
实例演示:
1.基于己有的镜像容器进行创建
#创建容器docker create- it jasonlix/ docker- cobbler /bin/ bashdocker commit -m "new" -a "daoke" c83aee844ae0 daoke:testdocker images| grep daoke2.基于本地模板创建
wget http://dlownload.openvz.org/template/precreated/debian-7.0-x86-minimal.tar.gzcat debian-7.0-x86-minimal.tar.gz| docker import - daoke:newdocker images|grep new3.私有仓库建立
docker pull registryvim /etc/dockerdaemon.json#添加以下内容,修改地址"insecure-registries": ["IP地址:5000"],systemctl restart docker.servicedocker create -it registry /bin/bashdocker ps -adocker start 库ID#宿主机的/data/registry自动创建挂载容器中的/tmp/registrydocker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry#宿主机的/ data/registry自动创建挂载容器中的/tmp/ registrydocker run -d- P 5000:5000 -v /data/registry:/tmp/registry registry#更改标记为192.168. 195. 128: 5000/nginxdocker tag nginx:latest IP地址:5000/nginx#上传docker push IP地址: 5000/nginx#获取私有仓库列表curlI -XGET http://IP地址:5000/v2/_catalog#显示上传成功{"repositories" :["nginx"]}#测试私有仓库下载docker pul1 IP地址:5000/nginx4.端口映射
docker run -d -P httpd:centosdocker run -d -p 49280:80 httpd: centosdocker ps -a5.容器互联
#创建并运行容器取名web1,端口号自动映射docker run -itd -P --name web1 centos /bin/bash #创建并运行容器取名web2docker run -itd -P --name web2 --link webl:web1 centos /bin/bash 进web2容器ping web16.Dockerfile文件
mkdir apachecd apachevim Dockerfile#基于的基础镜像FROM centos#维护镜像的用户信息MAINTAINER The porject #镜像操作指令安装apache软件RUN yum -y updateRUN yum -y install httpd#开启80端口EXPOSE 80 #复制网站首页文件ADD index.html /var/www/html/index.html#将执行脚本复制到镜像中ADD run.sh /run.shRUN chmod 755 /run.sh#启动容器时执行脚本CMD ["/run.sh"]vim run.sh#!/bin/bashrm -rf /run/httpd/*exec /usr/sbin/apachectl -D FOREGROUNDecho "web test" > index.html#生成镜像docker build -t httpd:centos .#新镜像运行容器docker run -d -p 1216:80 httpd:centos#测试并服务网页http://192.168.142.131:1216/
镜像
容器
指令
运行
文件
目录
信息
命令
地址
源文件
生成
仓库
模板
目标
缓存
变量
基础
环境
用户
端口
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
云信互联网科技有限公司
互联网的科技创新
互联网科技小贷
互联网科技作文
天津摩尔互联网科技
西安互联网科技公司
互联网科技小额贷款
互联网科技论坛
互联网养老 桔豆科技
隆华科技工业互联网
语蝶互联网科技有限公司
互联网科技与大数据专业
互联网科技和信息
朱啸虎曾投资哪些互联网科技企业
每天都有哪些好的互联网科技
有人说阿里系是互联网科技企业
互联网高科技行业有哪些企业
互联网科技手抄报图片
广州三三互联网科技有限公司
互联网科技自媒体灵感
百单网互联网科技有限公司
互联网科技资迅
互联网金融 金融科技
喔噻互联网科技
为想互联网科技
壹账通互联网科技
互联网科技有哪些公司
996高科技互联网公司
马化腾互联网科技教学
黑龙江互联网科技公司