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

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