Docker 三剑客之 Compose 笔记

# apt install docker.compose #快速编排 .yml
# Docker 命令自动补全
# 安装 bash-completion
# apt install bash-completion
# sudo curl -L https://raw.githubusercontent.com/docker/compose/1.24.1/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
# source /etc/bash_completion.d/docker-compose
# 安装二进制包
# curl -L https://github.com/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# chmod a+x /usr/local/bin/docker-compose
# curl -L https://github.com/docker/compose/releases/download/1.25.0/run.sh -o /usr/local/bin/docker-compose-run.sh
# chmod a+x /usr/local/bin/docker-compose-run.sh 
# 制作编排文件 yml yaml,建立工作目录
# cd /data/docker/docker-compose/webapp/
# vim docker-compose.yaml
# 常用命令(cd到编排文件目录中)
# docker-compose ps    # 列出项目中目前的所有服务容器
# docker-compose stop [containerName/containerID]        # 停止正在运行的服务容器【指定容器】
# docker-compose start [containerName/containerID]        # 启动服务容器【指定容器】
# docker-compose restart [containerName/containerID]    # 重启项目中的服务【指定容器】
# docker-compose pause [containerName/containerID]    # 暂停一个服务容器
# docker-compose unpause  [containerName/containerID]    # 恢复处于暂停状态中的服务
# docker-compose rm [-f:强制直接删除] [-v:挂载数据卷]        # 删除所有(停止状态的)服务容器。
# docker-compose down [ -rmi all:local] [-v:挂载数据卷]    # 停用移除所有容器以及网络相关
# docker-compose logs                            # 查看服务容器的输出
# docker-compose build                            # 
# docker-compose create [containerName]                # 为服务创建容器
# docker-compose exec                            # 
# dokcer-compose config [-q:只验证不输出]                # 验证并查看compose文件配置
# docker-compose pull                            # 拉取服务依赖的镜像
# docker-compose push                            # 推送服务依赖的镜像
# docker-compose run                            # 在指定服务容器上执行一个命令 docker-compose run ubuntu ping www.baidu.com
# docker-compose kill                            # 通过发送SIGKILL信号来强制停止服务容器    docker-compose kill -s SIGINT
# version:[-], services:[-], networks[-]
# 运行 Compose
# sudo docker-compose up
# -f:指定compose模板文件    up:    -d:在后台运行服务容器
 

# 使用docker-compose 建 PHP 站点
# sudo docker-compose -f docker-compose.yaml up -d    
# docker-compose.yml---------------------------------------------------------------------------------------------------------------------------
version: '2'
services: 
  nginx:
    depends_on:
      - php
      - mysql
      - redis      
    image: nginx
    ports:
      - "80:80"
    container_name: "mynginx"
    networks:
      - front
    volumes:
      - /data/www/html:/var/www/html            # 站点源码
      - /data/nginx/conf/conf.d:/etc/nginx/conf.d    # 站点配置 www.conf

  php:
    image: php:5.6-fpm
    ports:
      - "9000:9000"
    container_name: "phpfpm"
    networks:
      - front
      - backend
    #command:
      #- /bin/bash
      #- -c 
      #- |
      #  cd /usr/local/bin
      #  docker-php-ext-install pdo_mysql
      #  docker-php-ext-install mysql
    volumes:
      - /data/www/html:/var/www/html                # 站点源码
      - /data/php/php.ini:/usr/local/etc/php/php.ini    # PHP配置

  mysql:
    image: mysql:5.6
    ports:
      - "3306:3306"
    container_name: "mysql"
    restart: always
    command: --default-authentication-plugin=mysql_native_password
    networks:
      - backend
    volumes:
      - /data/mysql/sqlinit:/etc/mysql/sqlinit        # mysql 初始化
      - /data/mysql/data:/var/lib/mysql            # mysql 数据库文件
      #- /data/mysql/conf/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf
    environment:
      - MYSQL_DATABASE=online
      - MYSQL_ROOT_PASSWORD=123456

  redis:    
    image: redis:3.2
    ports:
      - "6379:6379"
    container_name: "redis"
    restart: always
    networks:
      - backend
    volumes:
      - /data/redis:/data                    # redis 数据文件
    command: redis-server --appendonly yes
    
networks:
  front:
    driver: bridge
  backend:
    driver: bridge
------------------------------------------------------------------------------------------------------------------------------------------------------

# 因为 PHP 镜像版本的问题,必须对 PHP 容器进行安装插件支持,如下mysql连接,

# 为 PHP 容器安装 PDO Mysql
# 进入容器 docker exec -it php:5.6-fpm bash 
# cd /usr/local/bin 
# docker-php-ext-install pdo_mysql  
# docker-php-ext-install mysql
# docker restart php:5.6-fpm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章