zoukankan      html  css  js  c++  java
  • 【玩转开源】制作Docker镜像

    做嵌入式方向经常会遇到的一个问题,就是编译环境安装,如果换电脑,再重新安装环境是一个比较费时的事情,这个时候可以自己制作一个Docker镜像,然后把编译环境在Docker镜像里面配置好,以后同步环境就非常方便了,接下来我们就一起来看一下如何制作一个Docker镜像。

    1. 制作前准备

    登录Docker Hub,https://cloud.docker.com/,申请一个账号;

    申请好后,然后创建一个自己的Repository,注意Repository的命名为小写。

    接下来我们就一起来制作一个Docker镜像。

    2.制作一个docker镜像

    1)首先我们pull一个docker官方提供的Ubuntu镜像:

          docker pull ubuntu:16.04  

    2)查看镜像是否已经下载:

          docker images   

    3)运行镜像:

          docker run  -it  --rm  ubuntu:16.04 

    这个时候就会进入到Docker container(容器)里面,然后执行make,gcc发现没有相应的命令。

    我们通过exit退出Docker container(容器),然后制作一个带编译工具的镜像。

    4)接下来我们通过Dockerfile来定制我们自己的镜像:

    创建Dockerfile文件,在文件里面添加安装命令如下:

          vim Dockerfile 

    # ubuntu 16.04 with compile env
    FROM ubuntu:16.04
    MAINTAINER jackzengcn<jackzeng@banana-pi.com>
    RUN apt-get update && apt-get upgrade && apt-get install vim -y
    RUN apt-get install -y net-tools && apt-get install -y iputils-ping
    RUN apt-get install -y gcc-arm-linux-gnueabi
    RUN apt-get install -y gcc-arm-linux-gnueabihf
    RUN apt-get install -y gcc-aarch64-linux-gnu
    RUN apt-get install -y device-tree-compiler
    RUN apt-get install -y git && apt-get install -y make && apt-get install -y gcc
    RUN apt-get install -y bc && apt-get install -y cpio

    在这里,我将会安装一些编译工具到即将要制作的Docker镜像中。

    FROM 表示以刚刚下载的Docker镜像 Ubuntu:16.04为基础制作;

    MAINTAINER 表示维护者信息;

    RUN 表示要执行的命令。

    5)接下来我们编译自己的Docker镜像:

    docker build  -t  TAGNAME  .  (注意TAGNAME后面有个“.”,“.”表示Dockerfile的路径;另外TAGNAME要与docker hub的Repository名字保持一致)

    我这里的Repo名称为:jackzengcn/bpiboardbuild

    所以我的build命令为:docker build  -t  jackzengcn/bpiboardbuild  .

     

    6)build完成后,就可以校验刚才build的镜像:

           docker run  -it  --rm  TAGNAME

    这次登录后,就会发现这些命令已经安装好了。

    7)校验成功后,就可以准备push镜像到远端Docker仓库,登录docker:

           docker login

    8)开始pushdocker push TAGNAME

    docker push jackzengcn/bpiboardbuild:latest

     到此,我们自己定制的Docker镜像就已经完成了。

  • 相关阅读:
    Windows Server 2003 SP2(32位) 中文版 下载地址 光盘整合方法
    用Recycle()方法对Java对象的重要性
    Lotus中千奇百怪的 $$
    Developing a simple application using steps "User Decision" and "Mail"(1) 沧海
    沟通中的情绪管理(演讲稿) 沧海
    人只有在压力之下,才可能成功,没做一件事,都必须成功,不许言败 沧海
    什么是IDOC,以及IDOC的步骤 沧海
    VS2008 Professional Edition CHS中的deffactory.dat读取错误 沧海
    Including custom text in the step "User Decision" 沧海
    SAP Upgrade Strategy 沧海
  • 原文地址:https://www.cnblogs.com/topbin/p/10314451.html
Copyright © 2011-2022 走看看