基礎環境說明docker
# cat /etc/redhat-release CentOS release 6.8 (Final)
設置 docker 鏡像源#bootstrap
# 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
vim
安裝 docker-io 和 febootstrap,用來製做centos鏡像,生成centos的鏡像#centos
# yum install docker-io -y #安裝docker # service docker start #啓動docker # yum install febootstrap #製做鏡像工具
製做CentOS鏡像文件 centos6-image 目錄#bash
# 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/
ssh
-i : 安裝的軟件包curl
centos6 : 系統版本ide
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默認的歡迎頁面