<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      docker鏡像制作

      @(kernetes虛擬化學習)[docker鏡像制作]
      dcoker鏡像制作

      FROM nimmis/ubuntu:14.04  #基礎鏡像用官網的就可以
      MAINTAINER nimmis<email>   #這里是作者的信息
      
      #ENV是在鏡像中添加的環境變量
      ENV DEBIAN_FRONTEND noninteractive
      ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64    
      #講一個文件添加到鏡像中,添加到一個給定的位置
      ADD file.sh /bin/file.sh
      #RUN在鏡像中運行的命令
      RUN apt-get install -y software-properties-common&&\
      ……
      #執行命令
      docker build -t (文件名或路徑)
      

      docker buildfile詳解:

      指令
      
      指令的一般格式為 INSTRUCTION arguments,指令包括 FROM、MAINTAINER、RUN 等。
      
      FROM
      
      格式為 FROM <image>或FROM <image>:<tag>。
      
      第一條指令必須為 FROM 指令。并且,如果在同一個Dockerfile中創建多個鏡像時,可以使用多個 FROM 指令(每個鏡像一次)。
      
      MAINTAINER
      
      格式為 MAINTAINER <name>,指定維護者信息。
      
      RUN
      
      格式為 RUN <command> 或 RUN ["executable", "param1", "param2"]。
      
      前者將在 shell 終端中運行命令,即 /bin/sh -c;后者則使用 exec 執行。指定使用其它終端可以通過第二種方式實現,例如 RUN ["/bin/bash", "-c", "echo hello"]。
      
      每條 RUN 指令將在當前鏡像基礎上執行指定命令,并提交為新的鏡像。當命令較長時可以使用 \ 來換行。
      
      CMD
      
      支持三種格式
      
          CMD ["executable","param1","param2"] 使用 exec 執行,推薦方式;
      
          CMD command param1 param2 在 /bin/sh 中執行,提供給需要交互的應用;
      
          CMD ["param1","param2"] 提供給 ENTRYPOINT 的默認參數;
      
      指定啟動容器時執行的命令,每個 Dockerfile 只能有一條 CMD 命令。如果指定了多條命令,只有最后一條會被執行。
      
      如果用戶啟動容器時候指定了運行的命令,則會覆蓋掉 CMD 指定的命令。
      
      EXPOSE
      
      格式為 EXPOSE <port> [<port>...]。
      
      告訴 Docker 服務端容器暴露的端口號,供互聯系統使用。在啟動容器時需要通過 -P,Docker 主機會自動分配一個端口轉發到指定的端口。
      
      ENV
      
      格式為 ENV <key> <value>。 指定一個環境變量,會被后續 RUN 指令使用,并在容器運行時保持。
      
      例如
      
      ENV PG_MAJOR 9.3
      
      ENV PG_VERSION 9.3.4
      
      RUN curl -SL http://example.com/postgres-$PG_VERSION.tar.xz | tar -xJC /usr/src/postgress && …
      
      ENV PATH /usr/local/postgres-$PG_MAJOR/bin:$PATH
      
      ADD
      
      格式為 ADD <src> <dest>。
      
      該命令將復制指定的 <src> 到容器中的 <dest>。 其中 <src> 可以是Dockerfile所在目錄的一個相對路徑;也可以是一個 URL;還可以是一個 tar 文件(自動解壓為目錄)。
      
      COPY
      
      格式為 COPY <src> <dest>。
      
      復制本地主機的 <src>(為 Dockerfile 所在目錄的相對路徑)到容器中的 <dest>。
      
      當使用本地目錄為源目錄時,推薦使用 COPY。
      
      ENTRYPOINT
      
      兩種格式:
      
          ENTRYPOINT ["executable", "param1", "param2"]
      
          ENTRYPOINT command param1 param2(shell中執行)。
      
      配置容器啟動后執行的命令,并且不可被 docker run 提供的參數覆蓋。
      
      每個 Dockerfile 中只能有一個 ENTRYPOINT,當指定多個時,只有最后一個起效。
      
      VOLUME
      
      格式為 VOLUME ["/data"]。
      
      創建一個可以從本地主機或其他容器掛載的掛載點,一般用來存放數據庫和需要保持的數據等。
      
      USER
      
      格式為 USER daemon。
      
      指定運行容器時的用戶名或 UID,后續的 RUN 也會使用指定用戶。
      
      當服務不需要管理員權限時,可以通過該命令指定運行用戶。并且可以在之前創建所需要的用戶,例如:RUN groupadd -r postgres && useradd -r -g postgres postgres。要臨時獲取管理員權限可以使用 gosu,而不推薦 sudo。
      
      WORKDIR
      
      格式為 WORKDIR /path/to/workdir。
      
      為后續的 RUN、CMD、ENTRYPOINT 指令配置工作目錄。
      
      可以使用多個 WORKDIR 指令,后續命令如果參數是相對路徑,則會基于之前命令指定的路徑。例如
      
      WORKDIR /a
      
      WORKDIR b
      
      WORKDIR c
      
      RUN pwd
      
      則最終路徑為 /a/b/c。
      
      ONBUILD
      
      格式為 ONBUILD [INSTRUCTION]。
      
      配置當所創建的鏡像作為其它新創建鏡像的基礎鏡像時,所執行的操作指令。
      
      例如,Dockerfile 使用如下的內容創建了鏡像 image-A。
      
      [...]
      
      ONBUILD ADD . /app/src
      
      ONBUILD RUN /usr/local/bin/python-build --dir /app/src
      
      [...]
      
      如果基于 image-A 創建新的鏡像時,新的Dockerfile中使用 FROM image-A指定基礎鏡像時,會自動執行 ONBUILD 指令內容,等價于在后面添加了兩條指令。
      
      FROM image-A #Automatically run the followingADD . /app/srcRUN /usr/local/bin/python-build --dir /app/src
      
      使用 ONBUILD 指令的鏡像,推薦在標簽中注明,例如 ruby:1.9-onbuild。
      

      示例:

      FROM ubuntu
      MAINTAINER youname "youemail"
      #更新源,安裝ssh server
      RUN echo "deb http://archibe.ubuntu.comubuntu precise main unibers"> /etc/apt/sources.list
      RUN apt-get update
      RUN apt-get install -y openssh-server
      RUN mkdir -p /var/run/sshd
      
      #設置root ssh遠程登陸密碼為123456
      RUN echo "root:123456" | chpasswd
      
      #添加orache java7源,一次性安裝vim,wget,curl,java7,tomcat7等軟件
      RUN apt-get install -y python-software-properties
      RUN add-apt-repository ppa:webunp8team/java
      RUN apt-get update
      RUN apt-get install -y vim wget curl oracle-java7-install tomcat7
      
      #更改環境變量
      RUN update-alternatives --display java
      RUN echo "JAVA_HOME=/usr/lib/jvm/java-7-oracle">>/etc/environment
      RUN echo "JAVA_HOME=/usr/lib/jvm/java-7-oracle">> /etc/default/tomcat7
      
      #容器需要開放的ssh 22端口
      EXPOSE 22
      
      #容器需要開放的TOMCAT 8080端口
      EXPOSE 8080
      
      #設置tomcat7初識化運行,ssh終端服務器作為后臺運行
      ENTRYPOINT service tomcat7 start&&/usr/sbin/sshd -D
      
      #注意:
      ENTRYPOINT/CMD都只能在文件中存在一次,并且最后一個生效 多個存在,只有最后一個生效,其它無效!
      需要初始化運行多個命令,彼此之間可以使用 && 隔開,但最后一個須要為無限運行的命令,需切記!
      ENTRYPOINT/CMD,一般兩者可以配合使用,比如:
      ENTRYPOINT ["/usr/sbin/sshd"]
      CMD ["-D"]
      
      
      在Docker daemon模式下,無論你是使用ENTRYPOINT,還是CMD,最后的命令,一定要是當前進程需要一直運行的,才能夠防容器退出。
      ENTRYPOINT service tomcat7 start && tail -f /var/lib/tomcat7/logs/catalina.out
      # 或者
      CMD service tomcat7 start && tail -f /var/lib/tomcat7/logs/catalina.out
      

      注意:
      docker的進程都應該在前臺啟動
      多個服務運行可以用supervisor去解決這個問題:
      例如:

      vim supervisord.conf
      
      [supervisord]
      nodaemon=true
      [program:sshd]
      command=/usr/sbin/sshd -D
      [program:apache2]
      command=/bin/bash -c "source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND"
      

      ssh server不應該包含在容器中因為涉及到密碼安全問題,這里kubernetes有很好的解決辦法;鏡像太多的化也是不方便管理。

      posted @ 2018-02-27 11:40  zz小公子  閱讀(219)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲国产精品一区二区第一页| 日韩视频中文字幕精品偷拍| 九九热免费在线视频观看| 国产超碰人人做人人爰| 国产亚洲无线码一区二区| 动漫AV纯肉无码AV电影网| 黄网站色视频免费观看| 无码内射成人免费喷射| 久久人与动人物a级毛片| 国产老熟女无套内射不卡| 中文字幕自拍偷拍福利视频| 91孕妇精品一区二区三区| 国产女人喷潮视频免费| 国产精品无码aⅴ嫩草| 中文字幕免费不卡二区| 日韩 欧美 亚洲 一区二区| 四虎成人精品无码| 国产精品国三级国产av| 淮安市| 亚洲国产精品午夜福利| 一区二区三区av天堂| 亚洲精品综合网在线8050影院| 东方四虎在线观看av| 国产情侣激情在线对白| 日韩精品专区在线影观看| 国产女人和拘做受视频免费 | 99九九视频高清在线| 18禁无遮挡啪啪无码网站破解版| 大香蕉av一区二区三区| 国产高清在线a视频大全| 久久精品国产一区二区三区| 亚洲人妻一区二区精品| 男女猛烈激情xx00免费视频| 乱码中文字幕| 久久婷婷大香萑太香蕉av人 | 久久人人爽爽人人爽人人片av| 亚洲高清成人av在线| 国产精品v片在线观看不卡| 内射极品少妇xxxxxhd| 在线观看无码av免费不卡网站| 麻豆一区二区三区蜜桃免费|