Docker创建镜像两种方法详解

 更新时间:2016年12月08日 10:07:00   投稿:lqh  
这篇文章主要介绍了 Docker创建镜像两种方法详解的相关资料,Docker创建镜像:一是使用docker commit命令,二是使用docker build命令和Dockerfile文件,需要的朋友可以参考下

 Docker创建镜像

            最近学习Docker 的知识,偶然在网上看到关于Docker 创建对象的两种方法很好,这里记录下,也许可以帮助到你。

 我们都知道Docker中我们是基于镜像来运行的容器,那如何创建镜像呢?创建镜像有两种方法,一是使用docker commit命令,二是使用docker build命令和Dockerfile文件。这里我们说的创建镜像是指基于一个已有的基础镜像比如ubuntu等,而不是从零创建一个全新的镜像。

        下面分别简单介绍一下两种方法。 

        第一种,使用docker commit创建。

        首先我们可以先运行一个容器:

    sudo docker run -i-t ubuntu /bin/bash

        然后我们可以在这个容器中进行修改,比如安装一些软件或者搭建一些环境等:

    apt-get install gcc


        最后我们提交这些修改并创建镜像:

   sudo dockercommit 4aa578389 buffoon/gcc

       这里4aa578389是修改过的容器的ID,buffoon/gcc是目标镜像仓库和镜像名。我们也可以在commit时候使用一些参数来扩充更多信息。比如:

    sudo dockercommit -m”A new image with gcc” -a”buffoon” 4aa578389 buf/gcc:mm

        上面-m选项指定了镜像的提交信息,-a选项标注了作者信息,最后的:mm是标签。

        我们可以sudo dockerimages buffoon/gcc  来查看新创建的镜像有没有成功。要查看镜像的详细信息,可以sudo docker inspect buf/gcc:mm 。 

        第二种,使用docker build命令和Dockerfile文件创建。

        首先我们先创建一个空目录,作为构建环境,即Docker中的构建上下文:

    mkdir gcc
    cd gcc

        然后我们在该目录中创建一个Dockerfile文件:

    vim Dockerfile

        在文件中编辑:

#Version: 0.0.1 
FROM ubuntu:latest 
MAINTAINERbuffoon xxx@gmail.com 
RUN apt-getinstall gcc 

        这个文件中,FROM 必须作为第一条指令,是指定基础镜像;MAINTAINER指令指明作者的一些信息;RUN 指明了镜像运行时要执行的命令。

        然后我们就可以进入到构建上下文中并执行创建:

   cd gcc
    sudo dockerbuild -t=”buffoon/gcc:v1” .  //注意最后一个点号

        -t指定仓库镜像标签,最后的点号是表明从当前路径中寻找Dockerfile文件。 

        Dockerfile中的指令有很多,这里就不一一介绍了,具体的指令请见:https://docs.docker.com/engine/reference/builder/

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • 详解Docker创建php开发环境遇到的权限问题解决方案

    详解Docker创建php开发环境遇到的权限问题解决方案

    本篇文章主要介绍了Docker创建php开发环境遇到的权限问题解决方案,具有一定的参考价值,有需要的可以了解一下。
    2016-11-11
  • docker 挂载、修改文件的步骤

    docker 挂载、修改文件的步骤

    这篇文章主要介绍了docker 挂载、修改文件的步骤,咱们使用的是docker的 copy 命令从容器中 copy 出来相关的配置文件,在本地修改,修改完毕在使用docker的 copy 命令从本地 copy 到容器中,重启容器生效的,需要的朋友可以参考下
    2023-03-03
  • pod污点taint 与容忍度tolerations详解

    pod污点taint 与容忍度tolerations详解

    这篇文章主要为大家介绍了pod污点taint与容忍度tolerations示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Docker容器没有权限写入宿主机目录的解决方案

    Docker容器没有权限写入宿主机目录的解决方案

    这篇文章主要介绍了Docker容器没有权限写入宿主机目录的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 如何通过Docker容器创建一个Web服务器

    如何通过Docker容器创建一个Web服务器

    这篇文章主要介绍了如何通过Docker容器创建一个Web服务器的相关资料,并对Nginx进行基本配置和测试,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • Centos 6.5中安装docker的步骤(简洁版)

    Centos 6.5中安装docker的步骤(简洁版)

    这篇文章主要介绍了Centos 6.5中安装docker的步骤(简洁版),需要的朋友可以参考下
    2016-10-10
  • Docker安装宝塔面板的实现

    Docker安装宝塔面板的实现

    本文主要介绍了Docker安装宝塔面板的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • 基于CentOS8系统使用Docker搭建Gitlab的详细教程

    基于CentOS8系统使用Docker搭建Gitlab的详细教程

    这篇文章主要介绍了基于CentOS8系统使用Docker搭建Gitlab教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • Docker遇到Intellij IDEA,Java开发提升了十倍生产力

    Docker遇到Intellij IDEA,Java开发提升了十倍生产力

    这篇文章主要介绍了Docker遇到Intellij IDEA,Java开发提升了十倍生产力,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Docker 环境 Nacos2 MySQL8的详细操作

    Docker 环境 Nacos2 MySQL8的详细操作

    本文介绍 docker 环境下安装并单机运行 Nacos2,使用 docker 环境下的 MySQL 8 存储数据 ,对Docker 环境 Nacos2 MySQL8相关知识感兴趣的朋友跟随小编一起看看吧
    2022-09-09

最新评论