做嵌入式方向經常會遇到的一個問題,就是編譯環境安裝,如果換電腦,再重新安裝環境是一個比較費時的事情,這個時候可以自己制作一個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)開始push,docker push TAGNAME
docker push jackzengcn/bpiboardbuild:latest
到此,我們自己定制的Docker鏡像就已經完成了。