Docker镜像管理
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,docker镜像的分层1.Dockerfile中的每个指令都会创建一个新的镜像层2.镜像层将被缓存和复用3.当Dockerfile的指令修改了,复制的文件变化了,或者构建镜像时指定的变量不同了,对应的
千家信息网最后更新 2025年12月02日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安全错误
数据库的锁怎样保障安全
存储和服务器的启动顺序
淅川网络安全知识竞赛
怎么打开数据库代码
进口多串口服务器厂家
基于中文数据库的知...
韶关自主可控软件开发销售厂
中国版起床战争服务器
大数据软件开发工程师专业排名
怎么让电脑添加到服务器
网信办网络安全处罚
网络安全宣传海报画
服务器自己可以搭建吗
国家网络安全龙头上市公司
公安局网络安全检查报告
数据库数据太多怎么降低扫描量
呼和浩特服务器带电清洗
医院引进数据库的报告
电子股软件开发
中国银行数据库管理
邮箱服务器地址查询
襄阳软件开发软件公司
vf三种数据库类型
怎么让电脑添加到服务器
夜曲钢琴谱软件开发
黎明觉醒服务器会爆满么
ms-sql数据库
方舟老牌服务器
济南云沃网络技术有限公司
网络安全测评师考题
数据库自动生成主键