Docker從零開始製作基礎映象之Centos
這裡有個統計,docker官方和個人釋出的映象由於版本等各種原因,漏洞較多,那我們如何自己從頭開始做個定製的映象呢?
對,找官方文件 http://docs.docker.com/articles/baseimages/,這裡說明的很清楚了
試驗如下:在centos7機器上做centos映象
直接參考這個指令碼
https://raw.githubusercontent.com/docker/docker/master/contrib/mkimage-yum.sh
./mkimage-yum.sh -y /etc/yum.conf centos7
執行如上指令碼,成功後,就可以看到映象了【docker images】,概要說明一下,主要是如下幾步:
1.tmp目錄下建立臨時目錄和檔案系統
2.使用yum安裝相關的軟體包
3.軟體包安裝和資訊定製
4.tar打包
5.清理
建立目錄結構[rootfs]
target=(mktemp?d??tmpdir(basename $0).XXXXXX)
set -x
mkdir -m 755 "$target"/dev
mknod -m 600 "$target"/dev/console c 5 1
mknod -m 600 "$target"/dev/initctl p
mknod -m 666 "$target"/dev/full c 1 7
mknod -m 666 "$target"/dev/null c 1 3
mknod -m 666 "$target"/dev/ptmx c 5 2
mknod -m 666 "$target"/dev/random c 1 8
mknod -m 666 "$target"/dev/tty c 5 0
mknod -m 666 "$target"/dev/tty0 c 4 0
mknod -m 666 "$target"/dev/urandom c 1 9
mknod -m 666 "$target"/dev/zero c 1 5
# amazon linux yum will fail without vars set
if [ -d /etc/yum/vars ]; then
mkdir -p -m 755 "$target"/etc/yum
cp -a /etc/yum/vars "$target"/etc/yum/
fi
軟體包安裝和資訊定製
yum -c "yumconfig"??installroot="target" --releasever=/ --setopt=tsflags=nodocs \
--setopt=group_package_types=mandatory -y groupinstall Core
yum -c "yumconfig"??installroot="target" -y clean all
...
打包
tar --numeric-owner -c -C "target".|dockerimport?name:$version
docker run -i -t name:version echo success
清理
rm -rf "$target"
如果我們需要自己的安全增強軟體等定製,只需要在第2步將我們的內容合併進去即可
生成的映象可以作為我們工作的基礎,當然你也可以push到開源社群
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18796236/viewspace-1821319/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 從零開始製作一個linux iso映象Linux
- 從零開始學 Python 之基礎語法Python
- 製作Docker映象Docker
- 製作JavaCV應用依賴的基礎Docker映象(CentOS7+JDK8+OpenCV4)JavaDockerCentOSJDKOpenCV
- Docker製作jdk映象DockerJDK
- Docker 映象製作方法Docker
- YashanDB Docker映象製作Docker
- oracle製作docker映象OracleDocker
- 從零開始——GO語言基礎語法Go
- 從零開始學AB測試:基礎篇
- 從零開始-基礎流程圖編輯庫流程圖
- Docker二所映象製作Docker
- Re:從零開始的Linux之路(基礎篇)Linux
- 從零開始搭建React應用(一)——基礎搭建React
- Rockchip RK3588 - 從零開始製作recovery系統
- 從零開始寫 Docker(七)---實現 mydocker commit 打包容器成映象DockerMIT
- docker 製作與使用 arcgisserver 映象DockerServer
- centos製作具備telnet和ping功能的docker映象CentOSDocker
- 資料分析從零開始實戰 | 基礎篇(三)
- 資料分析從零開始實戰 | 基礎篇(二)
- 資料分析從零開始實戰 | 基礎篇(一)
- javaSE從零開始04_java的基礎語法Java
- 從零開始製作cli工具,快速建立專案腳手架
- 微信小程式-從零開始製作一個跑步微信小程式微信小程式
- 從零開始搭建本地 Docker 開發環境Docker開發環境
- Docker Redis映象 主從複製DockerRedis
- 從零開始學golang之udpGolangUDP
- 從零開始學golang之 PrimGolang
- 從零開始學golang之TCPGolangTCP
- Docker如何製作映象-Dockerfile的使用Docker
- 伺服器:如何製作docker映象伺服器Docker
- 使用 Caddy 製作前端 Docker 映象前端Docker
- 從零開始寫 Docker(五)---基於 overlayfs 實現寫操作隔離Docker
- 『現學現忘』Docker基礎 — 35、實戰:自定義CentOS映象DockerCentOS
- 從零開始學golang之DijkstraGolang
- ORACLE從零開始系列之SQL(一)OracleSQL
- 教你一鍵製作專屬的活動邀請函!從零開始教程!
- 從零開始學Linux運維難嗎?Linux基礎Linux運維