Docker制作镜像
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,Docker制作镜像本章结构Docker镜像的分层Dockerfile基本创建方法Dockerfile创建各种应用容器Docker镜像的分层Dockerfile中的每个指令都会创建一个新的镜像层镜像层
千家信息网最后更新 2026年10月31日Docker制作镜像
Docker制作镜像
本章结构
- Docker镜像的分层
- Dockerfile基本创建方法
- Dockerfile创建各种应用容器
Docker镜像的分层
Dockerfile中的每个指令都会创建一个新的镜像层
镜像层将被缓存和复用
当Dockerfile的指令修改了,复制的文件变化了,或者构建镜像时指定的变量不同了,对应的镜像缓存就会失效
某一层的镜像缓存失效之后,它的镜像层缓存都会失效
镜像层是不可变的,如果在某一层中添加一个文件,然后在下一层中删除它,则镜像中依然会包含该文件
Docker镜像的创建
Docker镜像
- 是应用发布的标准格式
- 可支撑一个Docker容器的运行
Docker镜像的创建方法
- 基于已有镜像创建
- 基于本地模板创建
- 基于Dockerfile创建
基于已有镜像创建
将容器里面运行的程序及运行环境打包生成新的镜像
docker create -it centos /bin/bashdocker commit -m "new" -a "daoke" a19597abf62d daoke:centos- -m:说明信息
- -a:作者信息
- -p:生成过程中停止容器的运行
基于本地模板创建
通过导入操作系统模板文件生成新的镜像
使用wget命令导入为本地镜像
wget http://123.56.134.27/pub/package/LAMP-C7/nginx-1.12.0.tar.gzcat nginx-1.12.0.tar.gz | docker import - docker:new导入成功后可查看本地镜像信息
docker images | grep new基于Dockerfile创建
Dockerfile是由一组指令组成的文件
Dockerfile结果四部分
- 基础影响信息
- 维护者信息
- 镜像操作指令
- 容器启动时执行指令
使用Dockerfile创建镜像并在容器中运行
指令 含义 FROM镜像 指定新镜像所基于的镜像,第一条指令必须为FROM指令,每创建一个镜像就需要FFROM指令。 MAINTAINER 名字 说明新镜像的维护人信息 RUN命令 在所基于的镜像上执行命令,并提交到新的镜像中 CMD[ "要运行的程序","参数1,"参数2 "] 指令启动容器时要运行的命令或者脚本,Dockerfile只能有一条CMD命令,如果指定多条则只能最后f被执行 EXPOSE 端口号 指定新镜像加载到Docker时要开启的端口 ENV环境变量变量值 设置一个环境变量的值,会被后面的RUN使用 ADD源文件/目录目标文件/目录 将源文件复制到目标文件,源文件要与Dockerfile位于相同目录中,或者是f URL COPY源文件/目录目标文件/目录 将本地主机上的文件/目录复制到目标地点,源文件/目录要与DGckerfile在相同的目录中 VOLUME ["目录"] 在容器中创建一个挂载点 USER用户名/UID 指定运行容器时的用户 WORKDIR 路径 为后续的RUN、CMD、ENTRYPOINT指定工作目录 ONBUILD 命令 指定所生成的镜像作为一个基础镜像时所要运行的命令 HEALTHCHECK 健康检查
Dockerfile创建各种应用容器
Dockerfile创建apache镜像容器
mkdir apachecd apache/vim Dockerfile#基于的基础镜像FROM centos#维护镜像的用户信息MAINTAINER The project #镜像操作指令安装apache软件RUN yum -y update //更新yum仓库RUN 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"][root@localhost opt]# vim run.sh#!/bin/bashrm -rf /run/httpd/*exec /usr/sbin/apachectl -D FOREGROUNDecho "this is web" index.html//生成镜像docker build -t httpd:centos .//新镜像运行容器docker run -d -p 1216:80 httpd:centos Dockerfile创建ssh镜像容器
mkdir sshdcd sshd/vim Dockerfile#基于的基础镜像FROM centos#维护镜像的用户信息MAINTAINER this is project #重新加载yum源RUN yum -y update#安装必要软件包RUN yum -y install openssh* net-tools lsof telnet passwd#为root用户设置密码RUN echo '123456' | passwd --stdin root#修改配置文件RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config#生成秘钥RUN ssh-keygen -t rsa -f /etc/ssh/sshd_host_rsa_keyRUN sed -i '/^scssion\s\+required\s\+pam_loginuid.so/s/^/#/' /etc/pam.d/sshdRUN mkdir -P /root/.ssh && chown root.root /root && chmod 700 /root/.ssh#开启20端口EXPOSE 22#启动容器CMD ["/usr/sbin/sshd","-D"]//生成镜像docker build -t sshd:new .//启动容器并修改root密码docker run -d -P sshd:newssh localhost -p 32770 Dockerfile基于sshd镜像容器创建systemctl镜像容器
mkdir systemctl cd systemctl vim Dockerfile#基于的基础镜像FROM sshd:newENV container dockerRUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \systemd-tmpfile-setup.service ] || rm -f $i; done); \rm -f /lib/systemd/system/multi-user.target.wants/*; \rm -f /etc/systemd/system/*.wants/*; \rm -f /lib/systemd/system/local-fs.target.wants/*; \rm -f /lib/systemd/system/sockets.target.wants/*udev*; \rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \rm -f /lib/systemd/system/basic.target.wants/*; \rm -f /lib/systemd/system/anaconda.target.wants/*;VOLUME [ "/sys/fs/cgroup" ]CMD ["/usr/sbin/init"]//生成镜像docker build -t local/c7-systemd:latest .//privileged container内的root拥有真正的root权限。否责,container内的root只是外部的一个普通用户权限docker run --privileged -ti -v /sys/fs/cgroup:sys/fs/cgroup:ro local/c7-systemd:latest /sbin/init//进入容器 docker exec -it 镜像IP bash
镜像
容器
指令
文件
目录
运行
信息
生成
命令
用户
基础
源文件
目标
缓存
变量
模板
环境
端口
脚本
应用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网通讯科技
互联网金融 科技金融
互联网与新科技
世界互联网领先科技成果
唐信互联网科技 大连
互联网科技公司名称
互联网和高科技公司
北京大学互联网科技怎么样
小米互联网科技园设置
团飞科技与伯堂互联网服务平台
千方科技属于互联网企业吗
996高科技互联网公司
互联网科技和法律行业
四川互联网展示科技馆设计
福建互联网展示科技馆设计
广西科技产业互联网是什么
众联互联网络科技
数字互联网科技有限公司
三亚科技创新互联网基地
东风日产互联网科技公司叫什么
互联网电商科技
互联网与科技发展
奇酷互联网科技公司
百单互联网科技有限公司
科技类的互联网平台
现代科技和互联网有关系吗
中国科技互联网公司收入
欧洲十大科技互联网公司
昆明中奇联合互联网科技
前海云享互联网科技