站長資訊網
        最全最豐富的資訊網站

        docker如何自定義鏡像

        docker如何自定義鏡像

        docker如何自定義鏡像?

        1、要實現利用docker技術,首先要先安裝docker包

        本次用的是docker-engine-1.12.1-1.el7.centos.x86_64.rpm;docker技術是基于本機的底層系統,在系統之上,封裝打包并交付應用程序。它可以讓容器啟動起來像一個進程一樣快捷。
        基于docker技術,可以把需要的最小化各種系統環境當成一個鏡像封裝上,像啟動一個進程一樣啟動起來。

        2、制作自定義docker鏡像
        先在docker官網上下載一個docker的鏡像

        docker search docker docker pull docker

        官網上的鏡像都是最下化安裝,所以要先配置一個yum源,且在centos鏡像中安裝上平時用的軟件,及啟動httpd和sshd,具體操作如下:

        yum -y install docker-engine-1.12.1-1.el7.centos.x86_64.rpm mkdir testcd testtouch Dockerfile vim Dockerfile FROM centos:latest RUN rm -f /etc/yum.repos.d/* ADD centos7.repo /etc/yum.repos.d/centos7.repo RUN yum -y install httpd openssh-server net-tools bash-completion.noarch  iproute vim-enhanced EXPOSE 80 22 RUN  echo "123456" |passwd --stdin root RUN  /usr/sbin/sshd-keygen ENV EnvironmentFile=/etc/sysconfig/sshd WORKDIR /var/www/html RUN echo "<h1><font color=red>this is centos1:httpd">index.html ENV EnvironmentFile=/etc/sysconfig/httpd ADD qd.sh /root/qd.sh     CMD ["/root/qd.sh"] :wq

        注釋:
        EXPOSE是指定開放容器的哪些端口;
        ADD是把當前的目錄下的文件傳到容器中指定目錄下;必須是當前路徑
        RUN是指在容器中執行哪些命令;
        FROM是指定源鏡像,即這個鏡像是基于哪個鏡像來做的。
        WORKDIR是指定容器中的工作目錄,相當于centos系統中的cd命令
        ENV是定義環境變量
        CMD指定容器啟動來了之后執行的第一條命令為什么,需要用[]和引號分隔,如果有選項,則中間用逗號分隔,例如:["/usr/sbin/sshd","-D"]
        創建的文件必須叫Dockerfile
        如果感覺手動書寫這些命令比較復雜,可以進入基本鏡像中去執行各種命令,然后用history把命令查看出來,cp命令出來,用上面的相應的格式替換出來就可以了。

        3、編寫啟動腳本
        由于docker鏡像的CMD是定義啟動容器后執行的第一條默認命令,所以CMD中只能寫一條命令,而在這個案例中,我們要啟動兩個程序sshd和httpd,所以需要寫一個腳本,讓CMD直接執行腳本即可。

        vim qd.sh#!/bin/bash/usr/sbin/sshd -D & /usr/sbin/httpd -DFOREGROUND :wq

        chmod +x qd.sh //加執行權限
        4、創建鏡像
        需在當前目錄下執行

        docker build -t wang:sh2 .

        5、啟動鏡像,并且把容器的端口映射出來

        docker run -d -p 80:80 -p 2022:22 wang:sh2

        把容器的80端口映射到物理機的80端口,把容器的22端口映射到物理機的2022端口。
        6、訪問驗證

        firefox http://192.168.1.194(物理機) ssh -p 2022 192.168.1.194

        7、擴展
        也可以先做一個當一的sshd服務的鏡像出來,再基于sshd這個鏡像來做httpd的容器:

        im Dockerfile FROM wang:sshd RUN yum -y  httpd EXPOSE 80 22ENV EnvironmentFile=/etc/sysconfig/httpd WORKDIR /var/www/html RUN echo "<h1><font color=red>this is httpd and sshd">index.html ADD qd.sh /root/qd.sh     CMD ["/root/qd.sh"]  :wq

        相關參考:docker教程

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产成人精品视频播放| 国产专区日韩精品欧美色| 国产成人久久久精品二区三区| 亚洲AV无码国产精品麻豆天美| 国产精品99久久久久久猫咪| 成人伊人精品色XXXX视频| 亚洲欧洲精品成人久久曰影片| 国内精品免费视频精选在线观看| 夜夜爽一区二区三区精品| 国产女人18毛片水真多18精品| 思思99热在线观看精品| 亚洲AV无码久久精品成人| 99精品人妻少妇一区二区| 99精品免费视频| 久久精品亚洲精品国产色婷| 亚洲午夜成人精品电影在线观看| 国产亚洲精品资在线| 四虎国产精品免费久久久| 国产精品区一区二区三在线播放| 亚洲精品无码久久久久去q| 欧美精品三区| 精品少妇一区二区三区在线 | 久久久久久噜噜精品免费直播| 91麻精品国产91久久久久| 九九热这里只有在线精品视| 国产成人精品日本亚洲网站| 久久久国产精品亚洲一区| 亚洲AV成人精品网站在线播放| 亚洲精品综合久久| 亚洲精品欧美二区三区中文字幕| 婷婷国产成人精品一区二| 日韩精品一二三四区| 午夜三级国产精品理论三级| 日本午夜精品理论片A级APP发布 | 精品一卡2卡三卡4卡免费视频| 99精品无人区乱码在线观看| 国产在线精品一区二区中文| 精品无码久久久久久午夜| 精品视频无码一区二区三区| 国产精品白丝AV网站| 97久久超碰成人精品网站|