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镜像就已经完成了。

  • 相关阅读:
    python之路3-元组、列表、字典、集合
    python之路2-字符串操作
    Python之路1-变量、数据类型、循环语法
    config模块
    os模块
    logging模块
    控制台报错定位问题所在
    time模块
    random模块
    列表生成
  • 原文地址:https://www.cnblogs.com/topbin/p/10314451.html
Copyright © 2011-2022 走看看