1. 程式人生 > >製作 docker 映象

製作 docker 映象

基礎環境說明

# cat /etc/redhat-release
CentOS release 6.8 (Final)

設定 docker 映象源#

# yum install -y yum-priorities && rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

安裝 docker-io 和 febootstrap,用來製作centos映象,生成centos的映象#

# yum install docker-io -y #安裝docker
# service docker start #啟動docker
# yum install febootstrap #製作映象工具

製作CentOS映象檔案 centos6-image 目錄#

# febootstrap -i bash -i wget -i yum -i iputils -i iproute -i man -i vim -i openssh-server -i openssh-clients -i tar -i gzip centos6 centos6-image http://mirrors.aliyun.com/centos/6/os/x86_64/

-i : 安裝的軟體包

centos6 : 系統版本

centos6-image : 生成的目錄名稱

也可以製作CentOS7的映象 將地址更換為CentOS7的地址,例如

# febootstrap -i bash -i net-tools -i wget -i yum -i iputils -i iproute -i man -i vim -i openssh-server -i openssh-clients -i tar -i gzip centos7 centos7-image https://mirrors.aliyun.com/centos/7/os/x86_64/

設定ssh 進入映象的時候直接進入root 目錄(如果不做這一步則直接進入到 / 目錄)

# cd centos6-image && cp etc/skel/.bash* root/

生成基礎映象 base#

# cd centos6-image && tar -c . |docker import - centos6-base

檢視映象

# docker images

根據基礎映象製作 http 的docker 映象#

# cat Dockerfile

FROM centos6-base # 表示以此映象為基礎映象進行製作
MAINTAINER bamboo # 表示映象製作者的資訊
RUN yum install -y yum-priorities && rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/Packages/e/epel-release-6-8.noarch.rpm && rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
RUN yum install tar gzip vim wget httpd httpd-* -y
RUN sed -i 's/#ServerName www.example.com:80/ServerName www.example.com:80/' /etc/httpd/conf/httpd.conf
EXPOSE 80 # 表示開啟的埠號
CMD ["/usr/sbin/httpd","-D","FOREGROUND"] #表示在啟動映象的時候執行的命令 一個Dockerfile只能寫一個CMD命令,多個CMD執行最後的那一條
#ENTRYPOINT ["/usr/sbin/httpd","-D","FOREGROUND"] # 和CMD 用法一樣

build 映象#

# cd centos6-image && docker build -t centos6-httpd /root/bamboo
-t 後面跟的是即將生成映象的名字也就是上面的 centos6-httpd
最後跟的是 Dockerfile的目錄,是目錄

檢視和測試#

# docker images # 檢視新生成的映象centos6-httpd
# docker -d --name http -p 800:80 centos6-http
# docker ps -a # 可以檢視到執行的映象 以及埠對映情況
# 訪問 curl http://ip:800 可以看到http預設的歡迎頁面