Docker创建镜像两种方法详解

 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/

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

(0)

相关推荐

  • Docker镜像构建的两种方法解析

    关于Docker里面的几个主要概念 这里用个不太恰当的比方来说明. 大家肯定安装过ghost系统,镜像就像是ghost文件,容器就像是ghost系统.你可以拿别人的ghost文件安装系统(使用镜像运行容器),也可以把自己现有的系统制作成ghost文件(从容器构建镜像).Dockerfile则像是一个生成ghost文件的脚本(镜像构建脚本),这个脚本会指定去哪里下载哪个版本的window系统,再去哪里下载哪些软件并安装,再修改哪些配置文件,等等.本文主要讲的是,如何从容器构建镜像(把现有系统制作成

  • Docker push镜像失败解决方法

    Docker push镜像失败的问题. 以下是输入push自己的tomcat后出现了失败 [root@slave3 ~]# docker push lekkoliu/tomcat8:latest The push refers to a repository [docker.io/lekkoliu/tomcat8] cefee3f6c961: Preparing 82f021d9c2b9: Preparing 4f91f02b4e49: Preparing a4b3ce7e1d4a: Prepa

  • Docker常用的清除容器镜像命令小结

    前言 Docker 是一个非常有趣的项目.它自己宣称可以减轻部署服务器的难度,当然我相信里面有炒作的成分.但是实际使用后,我觉得 Docker 的表现还是可圈可点的.这篇文章主要总结了Docker清除容器镜像常用的命令,下面来一起看看吧. 杀死所有running状态的容器 docker kill $(docker ps -q) 删除所有已经停止的容器 docker rm $(docker ps -a -q) 删除所有\'untagged/dangling\' ()状态的镜像 docker rmi

  • 详解如何修改docker pull镜像源

    Docker Hub Mirror 为全球最大的Docker Registry(Docker Hub)提供在中国的镜像代理服务.Docker Hub Mirror会为中国的用户在国内的服务器上缓存诸多镜像 当用户的Docker设定了--registry-mirror参数后,用户的Docker下拉镜像时,首先去Docker Hub Mirror中查找镜像,若命中则说明该镜像已经在Docker Hub Mirror中缓存,用户直接从Docker Hub Mirror中下载:若没有命中,则说该镜像还没

  • 简单谈谈Docker镜像的使用方法

    在上篇文章(在Docker中搭建Nginx服务器)中,我们已经介绍了如何快速地搭建一个实用的Nginx服务器.这次我们将围绕Docker镜像(Docker Image),介绍其使用方法.包括三部分: 从Docker Hub或者其他镜像源安装Docker镜像 从Image file安装Docker镜像 从Docker file制作Docker镜像 查找Docker镜像 安装Docker镜像的第一步,是查找你需要的Docker镜像列表,键入: docker search mysql 如果出现权限问题

  • Docker 下载镜像慢的问题解决方法

    docker 解决下载镜像慢 使用Docker pull 镜像这个超级慢,因为docker的hub是在国外的,所以是特别慢的,有什么办法可以解决这个问题么?答案肯定是有的,我们可以使用docker的代理的解决这个问题,大家要自己准备一个可以使用的http代理地扯 原文. 代理设置 此文使用的系统是fedora 创建一个docker service目录 mkdir /etc/systemd/system/docker.service.d 创建 /etc/systemd/system/docker.

  • Docker创建镜像、怎么修改、上传镜像等详细介绍

    Docker 创建镜像.修改.上传镜像 –创建镜像有很多方法,用户可以从 Docker Hub 获取已有镜像并更新,也可以利用本地文件系统创建一个. 一.创建镜像 创建镜像有很多方法,用户可以从 Docker Hub 获取已有镜像并更新,也可以利用本地文件系统创建一个. 二.修改已有镜像 1.先使用下载的镜像启动容器. $ docker run -t -i training/sinatra /bin/bash root@0b2616b0e5a8:/# 注意:记住容器的 ID,稍后还会用到. 2.

  • Docker镜像保存为文件及从文件导入镜像的方法

    1.概述 我们制作好镜像后,有时需要将镜像复制到另一台服务器使用. 能达到以上目的有两种方式,一种是上传镜像到仓库中(本地或公共仓库),但是另一台服务器很肯能只是与当前服务器局域网想通而没有公网的,所以如果使用仓库的方式,只能自己搭建私有仓库,这会在另一篇文章中介绍. 如果我们仅仅是要复制到另外少数的服务器,搭建私有仓库显然没有这个必要,而将镜像保存为文件上传到其他服务器再从文件中载入镜像也是一个不错的选择. 可以使用Docker save和Docker load命令来存储和载入镜像. 2.保存

  • 利用Docker制作Nginx+PHP镜像的步骤详解

    前言 这篇文章给大家介绍的是使用Docker制作nginx+php的镜像,本文里的镜像是centos + nginx 1.9.7 + php 5.6.14,下面话不多说,直接看实现的步骤吧. 1.首先下载到nginx和php: nginx-1.9.5.tar.gz 下载:http://nginx.org/en/download.html php-5.6.14.tar.gz   下载:>http://php.net/downloads.php 2.以及扩展包so: memcache-2.2.4.t

  • 两种方式创建docker镜像的启动容器时区别介绍(总结篇)

    Docker是建立在Linux内核基础上的,在目前的主流Linux系统中,都已经原生支持了Docker且使用体验也最好,当然,在Windows平台和MacOS系统中也支持Docker,只是需要使用类似Boot2Docker等虚拟化工具来提供Linux支持. 下面重点给大家介绍基于两种创建docker镜像的启动容器时区别,感兴趣的朋友可以跟着小编一起学习! 1.凡是用docker commit生成的镜像启动的时候可以加载一个启动自己应用的脚本,例如: docker run -d -P tomcat

随机推荐