IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]Docker实践8:Compose

    lincyang发表于 2015-03-24 15:53:37
    love 0

    今天要在我的本子上搭建一个mediawiki环境,之前的经验,用fig去配置是最简单的了。可是下载fig失败,去官网一看才知道,fig已经被compose工具取代了。原文是这样说的:

    Fig has been replaced by Docker Compose, and is now deprecated. The new documentation is on the Docker website.

    既然如此,就去官网看看compose到底为何物。
    compose是用来在docker中定义和运行复杂应用的小工具,比如在一个文件中定义多个容器,只用一行命令就可以让一切就绪并运行。它的功能与我们所熟知的fig相似,换句话说,compose是fig的替代产品,fig就这样退出docker的历史舞台了。

    然而在github上的compose有这样的说法:

    Fig has been renamed to Docker Compose, or just Compose for short. This has several implications for you:
    
    The command you type is now docker-compose, not fig.
    You should rename your fig.yml to docker-compose.yml.

    看来fig是被重命名成compose了,配置文件变成了docker-compose.yml,其他都几乎一样。不但fig不能下载了,原来有fig工具的环境用fig去搭建mediawiki都不可用了,报错如下:

    fig up -d
    Creating hgserver_mediawiki_1...
    Pulling image amclain/hgweb...
    Traceback (most recent call last):
      File "<string>", line 3, in <module>
      File "/code/build/fig/out00-PYZ.pyz/fig.cli.main", line 31, in main
      File "/code/build/fig/out00-PYZ.pyz/fig.cli.docopt_command", line 21, in sys_dispatch
      File "/code/build/fig/out00-PYZ.pyz/fig.cli.command", line 28, in dispatch
      File "/code/build/fig/out00-PYZ.pyz/fig.cli.docopt_command", line 24, in dispatch
    ...
    fig.progress_stream.StreamOutputError: Get https://index.docker.io/v1/repositories/amclain/hgweb/images: dial tcp: lookup index.docker.io on 10.202.72.118:53: read udp 10.202.72.118:53: i/o timeout
    

    如此看来,使用compose是必须的了。
    下面说说compose的用法。
    1.安装compose
    OS X和64位的Linux用如下命令安装。

    # 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

    其他平台可以像python包一样安装:

    $ sudo pip install -U docker-compose

    2.命令简介

    $ docker-compose 
    Fast, isolated development environments using Docker.
    
    Usage:
      docker-compose [options] [COMMAND] [ARGS...]
      docker-compose -h|--help
    
    Options:
      --verbose                 Show more output
      --version                 Print version and exit
      -f, --file FILE           Specify an alternate compose file (default: docker-compose.yml)
      -p, --project-name NAME   Specify an alternate project name (default: directory name)
    
    Commands:
      build     Build or rebuild services
      help      Get help on a command
      kill      Kill containers
      logs      View output from containers
      port      Print the public port for a port binding
      ps        List containers
      pull      Pulls service images
      rm        Remove stopped containers
      run       Run a one-off command
      scale     Set number of containers for a service
      start     Start services
      stop      Stop services
      restart   Restart services
      up        Create and start containers
    

    3.compose编写mediawiki的docker-compose.yml
    首先编写compose的配置文件,语法与fig类似,文件名为docker-compose.yml,内容如下:

    wiki2:
        image: 'nickstenning/mediawiki'
        ports:
            - "8880:80"
        links:
            - db:database
        volumes:
            - /data/wiki2:/data
    
    db:
        image: "mysql"
        expose:
            - "3306"
        environment:
            - MYSQL_ROOT_PASSWORD=defaultpass

    4.创建并启动mediawiki

    $ docker-compose up -d


沪ICP备19023445号-2号
友情链接