美文网首页
2018-12-31docker && docker-compo

2018-12-31docker && docker-compo

作者: cuiyao50 | 来源:发表于2018-12-31 12:10 被阅读0次

    docker-compose

    接下来介绍另一种方法docker-compose

    上面介绍了用纯docker 命令启动容器,链接容器,但是每次启动容器时都要填写一堆参数,难免容易出错,出错了之后还要删除该容器才能重新跑。接下来就介绍一下 docker-compose.

    一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose,不再需要使用shell脚本来启动容器。在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器。

    首先安装docker-compose

    // 安装pip

    sudo yum install epel-release

    sudo yum install -y python-pip

    //使用pip 安装

    sudo pip install -U docker-compose

    Compose的默认配置文件是docker-compose.yml。让我们看看下面这个文件:

    nginx:  build: ./nginx  ports:    - "80:80"  links:    - "phpfpm"  volumes:    - /home/tanhui/composeTest/code/:/var/www/html/    - /home/tanhui/composeTest/nginx/conf/default.conf:/etc/nginx/conf.d/default.confphpfpm:  build: ./phpfpm  ports:    - "9000:9000"  volumes:    - ./code/:/var/www/html/  links:    - "mysql"mysql:  build: ./mysql  ports:    - "3306:3306"  volumes:    - /home/tanhui/composeTest/mysql/data/:/var/lib/mysql/  environment:    MYSQL_ROOT_PASSWORD : 123456

    以上的配置文件路径有绝对路径,有相对路径,build 参数代表该路径下的Dockerfile

    先看一下大概的目录结构

    $ tree composeTest

    composeTest

    ├── code

    │  ├── index.php

    │  ├── mysql.php

    │  └── testmysql.php

    ├── docker-compose.yml

    ├── index.php

    ├── mysql

    │  ├── data

    │  │  ├── auto.cnf

    │  │  ├── ibdata1

    │  │  ├── ib_logfile0

    │  │  ├── ib_logfile1

    │  │  ├── mysql [error opening dir]

    │  │  ├── performance_schema [error opening dir]

    │  │  └── test_db [error opening dir]

    │  └── Dockerfile

    ├── nginx

    │  ├── conf

    │  │  └── default.conf

    │  └── Dockerfile

    └── phpfpm

        └── Dockerfile

    10 directories, 23 files

    // Dockerfile 如下

    $ cat composeTest/mysql/Dockerfile

    FROM mysql:5.6

    # tanhui @ localhost in ~ [20:57:51]

    $ cat composeTest/phpfpm/Dockerfile

    FROM  php:5.6-fpm

    RUN apt-get update && apt-get install -y \

    libfreetype6-dev \

    libjpeg62-turbo-dev \

    libpng12-dev \

    vim \

    && docker-php-ext-install pdo_mysql \

    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \

    && docker-php-ext-install gd \

    # tanhui @ localhost in ~ [20:58:19]

    $ cat composeTest/nginx/Dockerfile

    FROM nginx:latest

    RUN apt-get update && apt-get install -y vim

    现在运行这三个容器只要使用命令  docker-compose up -d

    yum update 

    yum  remove docker  docker-common docker-selinux docker-engine

    yum install -y yum-utils  device-mapper-persistent-data lvm2

    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    yum list docker-ce --showduplicates|sort -r 

    yum install docker-ce-18.03.1.ce -y

    systemctl start docker

    systemctl enable docker

    vi /etc/docker/daemon.json

    {

        "registry-mirrors": ["http://hub-mirror.c.163.com"]

    }

    docker-compose的安装通过pip安装

    yum -y install epel-release

    yum -y install python-pip

    pip --version

    pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)

    pip install docker-compose==1.22

    如果报错:

    pip uninstall urllib3

    pip uninstall chardet

    pip install requests

    相关文章

      网友评论

          本文标题:2018-12-31docker && docker-compo

          本文链接:https://www.haomeiwen.com/subject/snpilqtx.html