美文网首页
使用docker-compose搭建php开发环境

使用docker-compose搭建php开发环境

作者: 567f84810acc | 来源:发表于2019-12-25 11:45 被阅读0次

    使用docker-compose搭建php开发环境

    命令简介

    
    >> docker-compose -h
    
    Define and run multi-container applications with Docker.
    
    Usage:
    
      docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
    
      docker-compose -h|--help
    
    Options:
    
      -f, --file FILE            Specify an alternate compose file
    
                                  (default: docker-compose.yml)
    
      -p, --project-name NAME    Specify an alternate project name
    
                                  (default: directory name)
    
      --verbose                  Show more output
    
      --log-level LEVEL          Set log level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
    
      --no-ansi                  Do not print ANSI control characters
    
      -v, --version              Print version and exit
    
      -H, --host HOST            Daemon socket to connect to
    
      --tls                      Use TLS; implied by --tlsverify
    
      --tlscacert CA_PATH        Trust certs signed only by this CA
    
      --tlscert CLIENT_CERT_PATH  Path to TLS certificate file
    
      --tlskey TLS_KEY_PATH      Path to TLS key file
    
      --tlsverify                Use TLS and verify the remote
    
      --skip-hostname-check      Don't check the daemon's hostname against the
    
                                  name specified in the client certificate
    
      --project-directory PATH    Specify an alternate working directory
    
                                  (default: the path of the Compose file)
    
      --compatibility            If set, Compose will attempt to convert keys
    
                                  in v3 files to their non-Swarm equivalent
    
      --env-file PATH            Specify an alternate environment file
    
    Commands:
    
      build              Build or rebuild services
    
      bundle            Generate a Docker bundle from the Compose file
    
      config            Validate and view the Compose file
    
      create            Create services
    
      down              Stop and remove containers, networks, images, and volumes
    
      events            Receive real time events from containers
    
      exec              Execute a command in a running container
    
      help              Get help on a command
    
      images            List images
    
      kill              Kill containers
    
      logs              View output from containers
    
      pause              Pause services
    
      port              Print the public port for a port binding
    
      ps                List containers
    
      pull              Pull service images
    
      push              Push service images
    
      restart            Restart services
    
      rm                Remove stopped containers
    
      run                Run a one-off command
    
      scale              Set number of containers for a service
    
      start              Start services
    
      stop              Stop services
    
      top                Display the running processes
    
      unpause            Unpause services
    
      up                Create and start containers
    
      version            Show the Docker-Compose version information
    
    

    查看网络

    
    >> docker network ls
    
    NETWORK ID          NAME                DRIVER              SCOPE
    
    44b1058d329e        bridge              bridge              local
    
    543a5853c43c        host                host                local
    
    edb59573b3a9        none                null                local
    
    

    新增网络 bridge

    
    >> docker network create -d bridge test
    
    #docker network ls
    
    NETWORK ID          NAME                DRIVER              SCOPE
    
    44b1058d329e        bridge              bridge              local
    
    543a5853c43c        host                host                local
    
    edb59573b3a9        none                null                local
    
    3e033c3c6175        test                bridge              local
    
    

    创建数据卷

    • docker volume create alonexy-unison-sync
    
    >>  docker inspect alonexy-unison-sync
    
    [
    
        {
    
            "CreatedAt": "2019-12-19T17:10:20+08:00",
    
            "Driver": "local",
    
            "Labels": {},
    
            "Mountpoint": "/var/lib/docker/volumes/alonexy-unison-sync/_data",
    
            "Name": "alonexy-unison-sync",
    
            "Options": {},
    
            "Scope": "local"
    
        }
    
    ]
    
    >> cd /var/lib/docker/volumes/alonexy-unison-sync/_data
    
    >> echo "Hi .">> index.php 
    
    

    查看版本

    
    >> docker-compose -v
    
    docker-compose version 1.25.0, build b42d419
    
    

    编写简单的 docker-compose.yml (V3)

    
    version: '3'
    
    services:
    
      console:
    
        image: 'alonexy/console:1.0'
    
        volumes:
    
          - alonexy-unison-sync:/app/www:nocopy
    
          - ./app/timezone/localtime:/etc/localtime
    
        tty: true
    
      web:
    
        image: 'alonexy/nginx:1.1'
    
        ports:
    
          - "8080:80"
    
        depends_on:
    
          - php
    
        volumes:
    
          - alonexy-unison-sync:/app/www:nocopy
    
          - ./services/nginx/config/conf.d:/etc/nginx/conf.d
    
          - ./app/timezone/localtime:/etc/localtime
    
        extra_hosts:
    
          - "somehost:127.0.0.1"
    
          - "otherhost:127.0.0.1"
    
      php:
    
        image: 'alonexy/php71:1.1'
    
        volumes:
    
          - alonexy-unison-sync:/app/www:nocopy
    
          - ./app/timezone/localtime:/etc/localtime
    
      db:
    
        image: "mysql:5.7"
    
        restart: always
    
        command: --default-authentication-plugin=mysql_native_password
    
        environment:
    
          - MYSQL_ROOT_PASSWORD=root
    
          - MYSQL_DATABASE=test
    
          - MYSQL_USER=test
    
          - MYSQL_PASSWORD=12345678
    
        ports:
    
          - "13306:3306"
    
        volumes:
    
          - ./app/database:/var/lib/mysql
    
          - ./app/timezone/localtime:/etc/localtime
    
    volumes:
    
      alonexy-unison-sync:
    
        external: true
    
    networks:
    
      default:
    
        external:
    
          name: test
    
    

    测试启动

    • -f 默认是 docker-compose.yml 如果是其他文件名需要指定名称
    
    >> docker-compose -f docker-compose-dev.yml up
    
    

    测试

    
    >> curl -i 127.0.0.1:8081
    
    HTTP/1.1 200 OK
    
    Server: nginx/1.11.10
    
    Date: Mon, 23 Dec 2019 02:47:39 GMT
    
    Content-Type: text/html; charset=UTF-8
    
    Transfer-Encoding: chunked
    
    Connection: keep-alive
    
    X-Powered-By: PHP/7.1.31
    
    Hi .
    
    

    END

    • docker-compose -f docker-compose-dev.yml up # 以终端模式启动

    • docker-compose -f docker-compose-dev.yml up -d # 以守护进程模式启动

    
    >> docker-compose -f docker-compose-dev.yml up  -d
    
    Starting www_php_1    ... done
    
    Starting www_db_1      ... done
    
    Starting www_console_1 ... done
    
    Starting www_web_1    ... done
    
    >> docker-compose -f docker-compose-dev.yml top
    
    www_console_1
    
    UID    PID    PPID    C  STIME    TTY      TIME      CMD
    
    ------------------------------------------------------------
    
    root  44281  44219  0  10:50  pts/0  00:00:00  php -a
    
    www_db_1
    
      UID      PID    PPID    C  STIME  TTY    TIME                                CMD
    
    --------------------------------------------------------------------------------------------------------------------
    
    systemd+  44296  44258  0  10:50  ?    00:00:00  mysqld --default-authentication-plugin=mysql_native_password
    
    www_php_1
    
    UID    PID    PPID    C  STIME  TTY    TIME                              CMD
    
    ---------------------------------------------------------------------------------------------------------
    
    root  44268  44207  0  10:50  ?    00:00:00  php-fpm: master process (/usr/local/etc/php-fpm.conf)
    
    33    44537  44268  0  10:50  ?    00:00:00  php-fpm: pool www
    
    33    44538  44268  0  10:50  ?    00:00:00  php-fpm: pool www
    
    www_web_1
    
    UID    PID    PPID    C  STIME  TTY    TIME                        CMD
    
    -----------------------------------------------------------------------------------------------
    
    root    44613  44581  0  10:50  ?    00:00:00  nginx: master process nginx -g daemon off;
    
    mysql  44766  44613  0  10:50  ?    00:00:00  nginx: worker process
    
    

    原文地址

    相关文章

      网友评论

          本文标题:使用docker-compose搭建php开发环境

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