成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

docker - 使用 Ansible 管理 docker 容器

cfanr / 1003人閱讀

摘要:原文是的官方文檔中大綱在的版本及以上支持。管理容器的生命周期。在中添加設(shè)置容器的主機(jī)名設(shè)置使用的鏡像把容器與其他容器連接起來(lái)比如。

  

注:作者是 Cove Schneider,Joshua Conner, Pavel Antonov。原文是 Ansible 的官方文檔中 docker - manage docker containers

大綱

在 Ansible 的 1.4 版本及以上支持。

管理 docker 容器的生命周期。

選項(xiàng)
屬性 必需 默認(rèn)值 選擇 說(shuō)明
command no 在啟動(dòng)的時(shí)候設(shè)置一個(gè)命令來(lái)運(yùn)行容器
count no 1 設(shè)置運(yùn)行的容器的數(shù)量
detach no true 以 detached 模式啟動(dòng),讓容器在后臺(tái)運(yùn)行
dns no 為容器設(shè)置自定義的 DNS 服務(wù)器
docker_api_version no docker-py default remote API version 使用的 Remote API 版本,默認(rèn)的是當(dāng)前 docker-py 默認(rèn)指定的版本(在 Ansible 1.8 中添加)
docker_url no unix://var/run/docker.sock docker 主機(jī)發(fā)出命令的 URL
env no 設(shè)置環(huán)境變量,(比如:env="PASSWORD=sEcRe7,WORKERS=4")
expose no 設(shè)置容器 expose 的端口,用于映射和 links。(如果這個(gè)端口已經(jīng)在 Dockerfile 中 EXPOSE 了,你不需要再次 expose 它)。在 Ansible 1.5 中添加
hostname no 設(shè)置容器的主機(jī)名
image yes 設(shè)置使用的鏡像
links no 把容器與其他容器連接起來(lái)(比如:links=redis,postgresql:db)。在 Ansible 1.5 中添加
lxc_conf no LXC 配置參數(shù),比如: lxc.aa_profile:unconfined
memory_limit no 256 MB 設(shè)置給容器分配的內(nèi)存
name no 設(shè)置容器的名字,不能與 count 參數(shù)同時(shí)使用,在 Ansible 1.5 中添加
net no 為 容器設(shè)置網(wǎng)絡(luò)模式(bridge, none, container:, host). 要求 docker >= 0.11. (在 Ansible 1.8 中被添加))
password no 設(shè)置遠(yuǎn)程API 的密碼
ports no 使用 docker CLI-style 語(yǔ)法,設(shè)置私有到公共端口的映射技術(shù)參數(shù), [([:[host_port]])|():][/udp] (在 Ansible 1.5 中添加)
privileged no 設(shè)置容器是否應(yīng)該允許在 privileged 模式
publish_all_ports no 發(fā)布所有的暴露端口給主機(jī)接口,在 Ansible 1.5 中添加
registry no 用于拉取鏡像的遠(yuǎn)程倉(cāng)庫(kù)的 URL,(在 Ansible 1.8 中添加 )
state no present present running stopped absent killed restarted 設(shè)置容器的狀態(tài)
stdin_open no 保持 stdin 打開(kāi)。(在 Ansible 1.6 中添加)
tty no 分配一個(gè) pseudo-tty (在 Ansible 1.6 添加)
username no 設(shè)置遠(yuǎn)程 API 的名稱
volumes no 設(shè)置掛載在容器中的 volume
volumes_from no 從另外一個(gè)容器中設(shè)置共享卷
  

注意:要求 docker-py >= 0.3.0
注意:docker >= 0.10.0

示例:

在 web 組的每臺(tái)主機(jī)上啟動(dòng)一個(gè)運(yùn)行 tomcat 的容器,并且把 tomcat 的監(jiān)聽(tīng)端口綁定到主機(jī)的 8080:

- hosts: web
  sudo: yes
  tasks:
  - name: run tomcat servers
    docker: image=centos command="service tomcat6 start" ports=8080

tomcat 服務(wù)器的端口是 NAT 到主機(jī)上的一個(gè)動(dòng)態(tài)端口,但是你可以決定服務(wù)器哪個(gè)端口與 Docker 容器做映射:

- hosts: web
  sudo: yes
  tasks:
  - name: run tomcat servers
    docker: image=centos command="service tomcat6 start" ports=8080 count=5
  - name: Display IP address and port mappings for containers
    debug: msg={{inventory_hostname}}:{{item["HostConfig"]["PortBindings"]["8080/tcp"][0]["HostPort"]}}
    with_items: docker_containers

正如前面的例子,但是是用一個(gè) sequence 迭代 docker 容器的列表:

- hosts: web
  sudo: yes
  vars:
    start_containers_count: 5
  tasks:
  - name: run tomcat servers
    docker: image=centos command="service tomcat6 start" ports=8080 count={{start_containers_count}}
  - name: Display IP address and port mappings for containers
    debug: msg="{{inventory_hostname}}:{{docker_containers[{{item}}]["HostConfig"]["PortBindings"]["8080/tcp"][0]["HostPort"]}}"
    with_sequence: start=0 end={{start_containers_count - 1}}

停止、移除所有正在運(yùn)行的 tomcat 容器,并且從停止的容器中列出退出碼:

- hosts: web
  sudo: yes
  tasks:
  - name: stop tomcat servers
    docker: image=centos command="service tomcat6 start" state=absent
  - name: Display return codes from stopped containers
    debug: msg="Returned {{inventory_hostname}}:{{item}}"
    with_items: docker_containers

創(chuàng)建一個(gè)命名的容器:

- hosts: web
  sudo: yes
  tasks:
  - name: run tomcat server
    docker: image=centos name=tomcat command="service tomcat6 start" ports=8080

創(chuàng)建多個(gè)命名的容器:

- hosts: web
  sudo: yes
  tasks:
  - name: run tomcat servers
    docker: image=centos name={{item}} command="service tomcat6 start" ports=8080
    with_items:
      - crookshank
      - snowbell
      - heathcliff
      - felix
      - sylvester

創(chuàng)建容器并通過(guò)使用 sequence 命名:

- hosts: web
  sudo: yes
  tasks:
  - name: run tomcat servers
    docker: image=centos name={{item}} command="service tomcat6 start" ports=8080
    with_sequence: start=1 end=5 format=tomcat_%d.example.com

創(chuàng)建兩個(gè)連接的容器:

- hosts: web
  sudo: yes
  tasks:
  - name: ensure redis container is running
    docker: image=crosbymichael/redis name=redis

  - name: ensure redis_ambassador container is running
    docker: image=svendowideit/ambassador ports=6379:6379 links=redis:redis name=redis_ambassador_ansible

創(chuàng)建容器,指定選項(xiàng)作為鍵值對(duì)和列表:

- hosts: web
  sudo: yes
  tasks:
  - docker:
        image: namespace/image_name
        links:
          - postgresql:db
          - redis:redis

Create containers with options specified as strings and lists as comma-separated strings:

- hosts: web
  sudo: yes
  tasks:
  docker: image=namespace/image_name links=postgresql:db,redis:redis

創(chuàng)建一個(gè)沒(méi)有 networking 的容器:

- hosts: web
  sudo: yes
  tasks:
  docker: image=namespace/image_name net=none

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/26337.html

相關(guān)文章

  • Docker 到Jenkins 到Ansible的部署經(jīng)驗(yàn)

    摘要:從到到的部署經(jīng)驗(yàn)工作中,除了開(kāi)發(fā)功能,還負(fù)責(zé)系統(tǒng)的部署工作。我從頻繁的部署工作中,逐漸找到了一些偷懶的方法。同時(shí)在構(gòu)建成功后執(zhí)行我們輸入的命令,來(lái)達(dá)到自動(dòng)化部署的工作。缺點(diǎn)也是有的,很難保證對(duì)方部署的環(huán)境是最新的。 從Docker 到Jenkins 到Ansible的部署經(jīng)驗(yàn) 工作中,除了開(kāi)發(fā)功能,還負(fù)責(zé)系統(tǒng)的部署工作。我從頻繁的部署工作中,逐漸找到了一些偷懶的方法。從傳統(tǒng)的Java ...

    beanlam 評(píng)論0 收藏0
  • 如何用 Ansible 部署 Kubernetes 集群到 OpenStack

    摘要:測(cè)試后,使用來(lái)發(fā)布。部署軟件組件,啟動(dòng)虛擬機(jī),將虛擬機(jī)分類到和節(jié)點(diǎn),然后部署密鑰清單。集群自動(dòng)化集群配置由三個(gè)控制。自簽證書簽署的服務(wù)器端證書和它的密鑰文件。 我們之前聊了把OpenStack跑在K8S上,如何基于Kubernetes在TCP云端創(chuàng)建私有云解決方法,運(yùn)用在生產(chǎn)或在OpenStack啟動(dòng)虛擬化。今天換個(gè)姿勢(shì),我們來(lái)看看如何在OpenStack虛擬機(jī)上運(yùn)行Kubernete...

    jiekechoo 評(píng)論0 收藏0
  • Docker 快速部署代碼之道

    摘要:在最初的容器構(gòu)建之后,的變更是純代碼。發(fā)現(xiàn)任何舊容器正在運(yùn)行的實(shí)例并停止它們。我們已經(jīng)創(chuàng)建了來(lái)直接部署我們的每個(gè)服務(wù),因此部署僅僅是一個(gè)運(yùn)行正確的問(wèn)題。總結(jié)因?yàn)橹饕囊粋€(gè)方式是封裝基礎(chǔ)架構(gòu)到一個(gè)自包含的,可部署的包。 在 Ionic,我們是 Docker 的鐵桿粉絲。我們的代碼以及代碼的依賴全部運(yùn)行在 Docker 中,Docker 讓我們的產(chǎn)品更充分地利用計(jì)算資源,比如 Ionic ...

    shengguo 評(píng)論0 收藏0
  • Docker 快速部署代碼之道

    摘要:在最初的容器構(gòu)建之后,的變更是純代碼。發(fā)現(xiàn)任何舊容器正在運(yùn)行的實(shí)例并停止它們。我們已經(jīng)創(chuàng)建了來(lái)直接部署我們的每個(gè)服務(wù),因此部署僅僅是一個(gè)運(yùn)行正確的問(wèn)題。總結(jié)因?yàn)橹饕囊粋€(gè)方式是封裝基礎(chǔ)架構(gòu)到一個(gè)自包含的,可部署的包。 在 Ionic,我們是 Docker 的鐵桿粉絲。我們的代碼以及代碼的依賴全部運(yùn)行在 Docker 中,Docker 讓我們的產(chǎn)品更充分地利用計(jì)算資源,比如 Ionic ...

    魏憲會(huì) 評(píng)論0 收藏0
  • 使用 Ansible 安裝和構(gòu)建 Docker

    摘要:最近,花了很大的興趣在組合使用和上。步驟如下從那里,我們可以使用已經(jīng)上傳到的角色。我們的像如下簡(jiǎn)單,在與你的一起的一個(gè)文件名字為因此,像這樣構(gòu)建現(xiàn)在讀者可以非常容易的適應(yīng)各種方法。檢出文件可能被忽略,并且被替換成命令獲得更加大的效率。 最近,花了很大的興趣在組合使用 Ansible 和 Docker上。所以我想這可以很好的描述一些技巧。 開(kāi)始,安裝 Docker。如果你已經(jīng)安裝了 A...

    zacklee 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<