热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

怎么创建Docker镜像

Docker镜像创建方法Docker镜像创建方法创建镜像的方法有三种,分别是基于已有的镜像创建、基于本地模板创建、基于Dockerfile创建,下面着重

Docker 镜像创建方法

Docker镜像创建方法 创建镜像的方法有三种,分别是基于已有的镜像创建、基于本地模板创建、基于Dockerfile 创建,下面着重介绍这三种创建镜像的方法。

一、基于已有镜像创建

首先将镜像加载到容器,将容器里面运行的程序及运行环境打包起来生成新的镜像,需要记住该容器的ID号。
命令格式: docker commit 【选项】 容器ID/名称 仓库名称:【标签】

常用选项:

-m:说明信息  
-a:作者信息  
-p:生成过程中停止容器的运行

例子:

docker create -it nginx /bin/bash  #启动容器
docker ps -a  #查看容器
docker commit -m "new" -a "zhao" 6f69698fc083 nginx:test  #创建新镜像
docker images  #查看镜像

怎么创建Docker镜像

二、基于本地模板创建

通过导入系统模板文件可以生成镜像,模板可以从OPENVZ开源项目下载
下载地址为:http://download.openvz.org/template/precreated

例子:

下面以debian模板压缩包导入为本地镜像的例子。
wget http://download.openvz.org/template/precreated/debian-7.0-x86-minimal.tar.gz
cat debian-7.0-x86-minimal.tar.gz | docker import - nginx:new

三、基于Dockerfile创建(重点)

Dockerfile是由一组指令组成的文件,每条指令对应linux中一条命令,Docker程序将读取Dockerfile中的指令生成指定镜像。
Dockerfile大致结构:基础镜像信息、维护者信息、镜像操作指令、容器启动时执行指令。每行支持一条指令,每条指令可以携带多个参数,支持以 # 开头的注释。

Dockerfile操作指令:

FROM 镜像 : 指定新的镜像所基于的镜像
MAINTAINER 名字 :说明新镜像的维护人
RUN 命令 : 在所基于的镜像上执行命令,并提交到新的镜像中
CMD ["要运行的程序","参数1","参数2"] : 指定启动容器时要运行的命令或脚本
EXPOSE端口号 : 指定新镜像加载到Docker时要开启的端口
ENV环境变量 变量值 : 设置一个环境变量的值,会背后面的RUN用到
ADD源文件/目录 目标文件/目录 :将源文件复制到目标文件 ,源文件和Dockerfile位于同一目录
COPY源文件/目录 目标文件/目录 :将本地主机的源文件复制到目标目录,源文件和Dockerfile位于同一目录
VOLUME["目录"] : 在容器中创建一个挂载点
USER 用户名 /UID :指定运行容器时的用户
WORKDIR路径 : 为后续的RUN 、CMD、ENTRYPOINT 指定工作目录
ONBUILD命令 : 指定所生成的镜像作为一个基础镜像时所要运行的命令。

Dockerfile例子:

mkdir httpd  创建目录
cd httpd   #切换目录
vim Dockerfile  #编写dockerfile

#基于基础镜像
FROM centos
#用户信息
MAINTAINER this is httpd image 
#添加环境包
RUN yum install -y httpd
#指定http端口
EXPOSE 80
#添加宿主机中run.sh到容器中
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]

vim run.sh  #编写httpd启动脚本

#!/bin/bash
rm -rf /run/httpd/*
exec /usr/sbin/apachectl -D FOREGROUND

docker build -t httpd:new .   #创建新镜像(不要忘了末尾的有 .)
docker run -d -p 80:80 httpd:new   #启动镜像
docker ps   #查看

怎么创建Docker镜像

怎么创建Docker镜像

怎么创建Docker镜像

网页验证

怎么创建Docker镜像


推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • 本文探讨了容器技术在安全方面面临的挑战,并提出了相应的解决方案。多租户保护、用户访问控制、中毒的镜像、验证和加密、容器守护以及容器监控都是容器技术中需要关注的安全问题。通过在虚拟机中运行容器、限制特权升级、使用受信任的镜像库、进行验证和加密、限制容器守护进程的访问以及监控容器栈,可以提高容器技术的安全性。未来,随着容器技术的发展,还需解决诸如硬件支持、软件定义基础设施集成等挑战。 ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • 在Windows10系统上使用VMware创建CentOS虚拟机的详细步骤教程
    本文详细介绍了在Windows10系统上使用VMware创建CentOS虚拟机的步骤,包括准备条件、安装VMware、下载CentOS ISO文件、创建虚拟机并进行自定义配置、设置虚拟机的ISO与网络、进行安装和配置等。通过本文的指导,读者可以轻松地创建自己的CentOS虚拟机并进行相应的配置和操作。 ... [详细]
  • PeopleSoft安装镜像版本及导入语言包的方法
    本文介绍了PeopleSoft安装镜像的两个版本,分别是VirtualBox虚拟机版本和NativeOS版本,并详细说明了导入语言包的方法。对于Windows版本,可以通过psdmt.exe登录进入,并使用datamover脚本导入语言包。对于Linux版本,同样可以使用命令行方式执行datamover脚本导入语言包。导入语言包后,可以实现多种语言的登录。参考文献提供了相关链接以供深入了解。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • 本文介绍了使用CentOS7.0 U盘刻录工具进行安装的详细步骤,包括使用USBWriter工具刻录ISO文件到USB驱动器、格式化USB磁盘、设置启动顺序等。通过本文的指导,用户可以轻松地使用U盘安装CentOS7.0操作系统。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 本文记录了作者对x265开源代码的实现与框架进行学习与探索的过程,包括x265的下载地址与参考资料,以及在Win7 32 bit PC、VS2010平台上的安装与配置步骤。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • 本文介绍了在无法联网的情况下,通过下载rpm包离线安装zip和unzip的方法。详细介绍了如何搜索并下载合适的rpm包,以及如何使用rpm命令进行安装。 ... [详细]
author-avatar
门板班不查询只
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有