Docker-compose

常用命令

命令 举例 说明
docker-compose up docker-compose -f docker-compose-nginx.yaml up -d 根据配置文件docker-compose-cli.yaml启动容器,其中:-f 指定配置文件的名称,-d 设置以后台方式运行
docker-compose down docker-compose -f docker-compose-cli.yaml down 停止配置文件docker-compose-cli.yaml的容器
docker-compose pull docker-compose -f docker-compose-cli.yaml pull 批量下载所需的镜像文件
  • 更多命令查看Docker官方帮助文档

配置参考

选项 举例 说明
version version:“3” 采用verson3的语法
services 服务定义列表
myNginx 根据服务名称自定义 自定义服务名称,需要保持唯一
container_name container_name: “myNginx” 容器名称
image image: nginx:stable-alpine 容器使用的镜像名称
environment - NGINX_PORT=80 传递给容器的环境变量
working_dir working_dir:/opt/gopath/src/github.com/hyperleder/fabric 容器启动的工作目录
volumes - “$PWD/conf.d:/etc/nginx/conf.d” 宿主机和容器之间的目录映射
ports - ‘80:80’ 宿主机和容器之间的端口映射
extends file:common.yml 服务扩展,基于common.yml文件
extends service:peer-base 服务扩展,基础服务是peer-base
  • 更多命令查看Docker官方帮助文档

配置实例

下图面是一个简单的 php+nginx+mysql 的配置

version: '3'
services:
    nginx:
        image: nginx:latest
        # 端口映射
        ports:
            - "80:80"
        # 依赖关系 先跑php
        depends_on:
            - "php"
        # 数据卷
        volumes:
            # 映射主机./conf.d目录到容器/etc/nginx/conf.d目录
            - "$PWD/conf.d:/etc/nginx/conf.d"
        networks:
            - app
        # 容器名称
        container_name: "nginx"
    php:
        build: ./php
        # image: php:7.2-fpm
        ports:
            - "9000:9000"
        volumes:
            - "$HOME/Project/Docker/compose-php7.2/php:/data"
        networks:
            - app
        container_name: "php"
    mysql:
        image: mysql:5.7
        ports:
            - "3306:3306"
        # 环境变量
        environment:
            # mysql密码
            - MYSQL_ROOT_PASSWORD=123456
            - MYSQL_ALLOW_EMPTY_PASSWORD=false
        volumes:
          - db-data:/var/lib/mysql/data
        networks:
            app:
                # 固定子网ip,网段必须在子网络10.10.*.*
                # ipv4_address: 10.10.10.1
        container_name: "mysql"
volumes:
  db-data:
networks:
    # 配置docker network
    app:
        driver: bridge
        # ipam:
        #     config:
        #         # 子网络
        #         - subnet: 10.10.0.0/16

build: ./php 指向的php文件夹中的Dockerfile文件代码如下

FROM php:7.2-fpm
RUN apt-get update \
    && pecl install redis-4.0.1 \
    && pecl install mysqli \
    # 启用扩展
    && docker-php-ext-enable redis mysqli

你可能感兴趣的:(docker)