乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Docker

       ThinkTank_引擎 2017-04-17

      一、Compose安裝

      在安裝compose之前,要確保已經安裝了docker1.3或以上版本
      在Linux64位系統(tǒng)上安裝compose:

      curl -L https://github.com/docker/compose/releases/download/1.1.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose 
      chmod +x /usr/local/bin/docker-compose  
      • 1
      • 2
      • 1
      • 2
      • 注:當然可以選擇安裝command completion(見二)
      • uname -suname -m中的兩個引號是鍵盤上ESC下面的那個按鍵
        此時,compose已經安裝成功,使用命令docker-compose --version可以查看

      如果是在OS X系統(tǒng)上,則需要執(zhí)行如下步驟(未親測):


      二、Compose命令補全

      安裝命令補全

      確保bash completion已經安裝,如果當前使用非最小安裝的Linux,bash completion已經OK了,如果是在MAC上,可以使用brew install bash-completion來安裝
      將completion腳本放在/etc/bash_completion.d/(在MAC上是/usr/local/etc/bash_completion.d/)

      curl -L https://raw./docker/compose/1.1.0/contrib/completion/bash/docker-compose > /etc/bash_completion.d/docker-compose
      • 1
      • 1

      在下次登錄時,Completion功能已經可以使用
      可用的補全取決于在命令行的輸入,會補全:
      * 可用的Docker-compose命令
      * 對于某一特別命令可用的選項
      * 在一個給定的上下文條件(比如:具有運行或停止狀態(tài)的實例的服務或者基于鏡像的服務 VS 基于Dockerfile的服務)下,給出有可行的服務名稱,對于docker-compose scale,補全服務名稱時會自動有”=”附加上去
      * 對于可選項的參數,比如:docker-compose kill -s會完成一些信號,比如SIGUP和SIGUSR1

      擁有了這項功能以后,Compose更快更少輸入了呢!Happy working!


      三、Compose使用實例

      在本例中將會實現(xiàn)啟動nginx服務及一個數據卷容器,并將該數據卷容器作為nginx的靜態(tài)文件
      1.創(chuàng)建compose文件夾
      sudo mkdir composetest
      cd composetest
      2.創(chuàng)建docker-compose.yml文件
      touch docker-compose.yml
      vim docker-compose.yml
      在docker-compose.yml中輸入以下內容:

      dvc:  
        image: debian:wheezy
        volumes:  
         - /www:/usr/share/nginx/html:ro
      
      nginx:
        image: nginx:latest
        volumes_from:
         - dvc
        ports:
         - "8081:80"
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11

      3.啟動
      docker-compose up -d
      注:使用命令docker-compose ps查看運行狀況


      四、CLI 說明(docker-compose 命令)

      大多數Compose命令都是運行于一個或多個服務的,如果服務沒有指定,該命令將會應用到所有服務,如果要獲得所有可用信息,使用命令:docker-compose [COMMAND] --help,下面是命令(COMMAND)的說明:

      build
      創(chuàng)建或者再建服務
      服務被創(chuàng)建后會標記為project_service(比如composetest_db),如果改變了一個服務的Dockerfile或者構建目錄的內容,可以使用docker-compose build來重建它

      help
      顯示命令的幫助和使用信息

      kill
      通過發(fā)送SIGKILL的信號強制停止運行的容器,這個信號可以選擇性的通過,比如:
      docker-compose kill -s SIGKINT

      logs
      顯示服務的日志輸出

      port
      為端口綁定輸出公共信息

      ps
      顯示容器

      pull
      拉取服務鏡像

      rm
      刪除停止的容器

      run
      在服務上運行一個一次性命令,比如:
      docker-compose run web Python manage.py shell

      scale
      設置為一個服務啟動的容器數量,數量是以這樣的參數形式指定的:service=num,比如:
      docker-compose scale web=2 worker=3

      start
      啟動已經存在的容器作為一個服務

      stop
      停止運行的容器而不刪除它們,它們可以使用命令docker-compose start重新啟動起來

      up
      為一個服務構建、創(chuàng)建、啟動、附加到容器
      連接的服務會被啟動,除非它們已經在運行了
      默認情況下,docker-compose up會集中每個容器的輸出,當存在時,所有的容器會停止,運行docker-compose up -d會在后臺啟動容器并使它們運行
      默認情況下,如果服務存在容器的話,docker-compose up會停止并再創(chuàng)建它們(使用了volumes-from會保留已掛載的卷),如果不想使容器停止并再創(chuàng)建的話,使用docker-compose up --no-recreate,如果有需要的話,這會啟動任何停止的容器

      選項

      –verbose
      顯示更多輸出

      –version
      顯示版本號并退出

      -f,–file FILE
      指定一個可選的Compose yaml文件(默認:docker-compose.yml)

      -p,–project-name NAME
      指定可選的項目名稱(默認:當前目錄名稱)


      五、docker-compose.yml命令說明

      每一個定義在docker-compose.yml中的服務必須明確指定一個image或者build選項,這與docker run命令行中輸入的是對應相同的,對于docker run,在Dockerfile文件中指定的選項(比如CMD、EXPOSE、VOLUME、ENV)是默認的,因此不必在docker-compose.yml中再指定一次

      image
      標明image的ID,這個image ID可以是本地也可以是遠程的,如果本地不存在,Compose會嘗試去pull下來

      image: ubuntu  
      image: orchardup/postgresql  
      image: a4bc65fd  
      • 1
      • 2
      • 3
      • 1
      • 2
      • 3

      build
      該參數指定Dockerfile文件的路徑,該目錄也是發(fā)送到守護進程的構建環(huán)境(這句有點),Compose將會以一個已存在的名稱進行構建并標記,并隨后使用這個image

      build: /path/to/build/dir  
      • 1
      • 1

      command
      重寫默認的命令

      command: bundle exec thin -p 3000  
      • 1
      • 1

      links
      連接到其他服務中的容器,可以指定服務名稱和這個鏈接的別名,或者只指定服務名稱

      links:  
       - db  
       - db:database  
       - redis  
      • 1
      • 2
      • 3
      • 4
      • 1
      • 2
      • 3
      • 4

      此時,在容器內部,會在/etc/hosts文件中用別名創(chuàng)建一個條目,就像這樣:

      172.17.2.186  db  
      172.17.2.186  database  
      172.17.2.186  redis  
      • 1
      • 2
      • 3
      • 1
      • 2
      • 3

      環(huán)境變量也會被創(chuàng)建,關于環(huán)境變量的參數,會在后面講到

      external_links
      連接到在這個docker-compose.yml文件或者Compose外部啟動的容器,特別是對于提供共享和公共服務的容器。在指定容器名稱和別名時,external_links遵循著和links相同的語義用法

      external_links:  
       - redis_1  
       - project_db_1:mysql  
       - project_db_1:postgresql  
      • 1
      • 2
      • 3
      • 4
      • 1
      • 2
      • 3
      • 4

      ports
      暴露端口,指定兩者的端口(主機:容器),或者只是容器的端口(主機會被隨機分配一個端口)

      注:當以 主機:容器 的形式來映射端口時,如果使容器的端口小于60,那可能會出現(xiàn)錯誤,因為YAML會將 xx:yy這樣格式的數據解析為六十進制的數據,基于這個原因,時刻記得要將端口映射明確指定為字符串

      ports:  
       - "3000"  
       - "8000:8000"  
       - "49100:22"  
       - "127.0.0.1:8001:8001"  
      • 1
      • 2
      • 3
      • 4
      • 5
      • 1
      • 2
      • 3
      • 4
      • 5

      expose
      暴露端口而不必向主機發(fā)布它們,而只是會向鏈接的服務(linked service)提供,只有內部端口可以被指定

      expose:  
       - "3000"  
       - "8000"  
      • 1
      • 2
      • 3
      • 1
      • 2
      • 3

      volumes
      掛載路徑最為卷,可以選擇性的指定一個主機上的路徑(主機:容器),或是一種可使用的模式(主機:容器:ro)

      volumes_from:  
       - service_name  
       - container_name  
      • 1
      • 2
      • 3
      • 1
      • 2
      • 3

      environment
      加入環(huán)境變量,可以使用數組或者字典,只有一個key的環(huán)境變量可以在運行Compose的機器上找到對應的值,這有助于加密的或者特殊主機的值

      environment:  
        RACK_ENV: development  
        SESSION_SECRET:  
      environments:  
        - RACK_ENV=development  
        - SESSION_SECRET  
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6

      env_file
      從一個文件中加入環(huán)境變量,該文件可以是一個單獨的值或者一張列表,在environment中指定的環(huán)境變量將會重寫這些值

      env_file:  
        - .env  
      
      
      RACK_ENV: development  
      • 1
      • 2
      • 3
      • 4
      • 5
      • 1
      • 2
      • 3
      • 4
      • 5

      net
      網絡模式,可以在docker客戶端的--net參數中指定這些值

      net: "bridge"  
      net: "none"  
      net: "container:[name or id]"  
      net: "host"  
      • 1
      • 2
      • 3
      • 4
      • 1
      • 2
      • 3
      • 4

      dns
      自定義DNS服務,可以是一個單獨的值或者一張列表

      dns: 8.8.8.8  
      dns:  
        - 8.8.8.8  
        - 9.9.9.9  
      • 1
      • 2
      • 3
      • 4
      • 1
      • 2
      • 3
      • 4

      cap_add,cap_drop
      加入或者去掉容器能力,查看man 7 capabilities 可以有一張完整的列表

      cap_add:
        - ALL  
      
      cap_drop:  
        - NET_ADMIN  
        - SYS_ADMIN  
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6

      dns_search
      自定義DNS搜索范圍,可以是單獨的值或者一張列表

      dns_search: example.com  
      dns_search:  
        - dc1.example.com  
        - dc2.example.com  
      • 1
      • 2
      • 3
      • 4
      • 1
      • 2
      • 3
      • 4

      working_dir,entrypoint,user,hostname,domainname,mem_limit,privileged,restart,stdin_open,tty,cpu_shares
      上述的每一個都只是一個單獨的值,和docker run中對應的參數是一樣的

      cpu_shares: 73
      
      working_dir: /code
      entrypoint: /code/entrypoint.sh
      user: postgresql
      
      hostname: foo
      domainname: foo.com
      
      mem_limit: 1000000000
      privileged: true
      
      restart: always
      
      stdin_open: true
      tty: true  
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16

      六、Compose環(huán)境變量說明

      環(huán)境變量已經不再是用來連接服務的推薦方法了,相反,應該使用鏈接名稱(默認情況下是鏈接服務的名稱)作為主機名稱來連接,這可以查看docker-compose.yml的更多細節(jié)
      Compose使用Docker links來暴露服務的容器給其他的。每一個鏈接的容器都使用了一組環(huán)境變量,這每一組環(huán)境變量都是以容器名稱的大寫字母開頭的
      要查看服務可用的環(huán)境變量,運行docker-compose run SERVICE env

      name_PORT
      完整URL,如:DB_PORT=tcp//172.17.0.5:5432

      name_PORT_num_protocol
      完整URL,如:DB_PORT_5432_TCP=tcp://172.17.0.5:5432

      name_PORT_num_protocol_ADDR
      容器的IP地址,如:DB_PORT_5432_TCP_ADDR=172.17.0.5

      name_PORT_num_protocol_PORT
      暴露的端口號,如:DB_PORT_5432_TCP_PORT=5432

      name_PORT_num_protocol_PROTO
      協(xié)議(tcp或者udp),如:DB_PORT_5432_TCP_PROTO=tcp

      name_NAME
      完全合格的容器名稱,如:DB_1_NAME=/myapp_web_1/myapp_db_1  

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多