美文网首页Docker学习程序员
Docker生产环境部署

Docker生产环境部署

作者: 飞鸟2014 | 来源:发表于2016-12-29 17:44 被阅读244次

    Docker生产环境部署

    权限配置

    创建登录用户

    $ sudo useradd admin
    $ sudo passwd admin
    // 设置密码
    

    配置root用户不能远程登录

    $ sudo vi /etc/ssh/sshd_config
    

    注意: 是sshd_config,不是ssh_config

    PermitRootLogin yes
    改为:
    PermitRootLogin no

    重启sshd服务

    $ sudo systemctl restart sshd.service
    

    使用docker-compose管理docker

    docker安装

    参考CentOS上安装Docker

    docker-compose安装

    在当前shell命令下执行:

    $ sudo pip install -U docker-compose
    

    项目目录结构

    /share/
    ├── backup                   //备份文件
    │   ├── mysql
    │   ├── postgres
    │   └── back.sh              //备份运行脚本
    ├── db                       //挂载到docker下的数据卷
    │   ├── mysql
    │   └── postgresql
    ├── docker                   //docker相关的配置文件
    │   ├── Dockerfiles
    │   │   ├── mtl_node
    │   │   └── mtl_php
    │   ├── etc                 //docker挂在的配置文件
    │   │   ├── apache2
    │   │   ├── nginx
    │   │   └── odoo
    │   └── docker-compose.yml  //docker-compose的配置文件
    │
    └── web                     //项目源码,挂在道docker下的数据卷
        ├── api
        │   └── dist
        ├── erp
        │   ├── addons
        │   ├── openerp
        ├── images
        │   └── dist
        ├── shop
        └── website
    

    建立docker镜像

    $ cd  /share/docker/Dockerfiles/mtl_node
    $ sudo docker build -t mtl_node .
    // 建立一个nodejs镜像
    

    启动docker

    $ sudo docker-compose -f /share/docker/docker-compose.xml -d up
    // 如果处于调试模式,不用加 -d
    

    备份数据

    $ sudo crontab -e
    // 写入
    // 30 2 * * *  /usr/bin/sh /share/backup/back.sh
    // 上面语句表示,每天2点30分执行 back.sh脚本。
    

    其他

    docker开机自启动

    在docker-compose.xml 写入 restart: always

    docker-compose.xml 配置文件

    version: '2'
    services:
      redis:
        image: redis
        ports:
          - "6379:6379"
      mysql:
        image: mysql
        ports:
          - "3306:3306"
        volumes:
          - /share/db/mysql:/var/lib/mysql
        environment:
          - MYSQL_ROOT_PASSWORD=666666
      postgres:
        image: postgres
        environment:
          - POSTGRES_PASSWORD=odoo
          - POSTGRES_USER=odoo
        volumes:
          - /share/db/postgresql:/var/lib/postgresql/data
      erp:
        image: odoo
        working_dir: /mnt/extra-addons
        depends_on:
          - postgres
        links:
          - postgres:db
        ports:
          - "8069:8069"
        volumes:
          - /share/web/erp/addons:/mnt/extra-addons
      images:
        image: mtl_node
        working_dir: /opt/app/
        volumes:
          - /share/web/images/dist:/opt/app/dist
    
      website:
        restart: always
        image: mtl_php
        working_dir: /var/www/html
        volumes:
          - /share/docker/etc/apache2:/etc/apache2
          - /share/web/website:/var/www/html
      shop:
        restart: always
        image: mtl_php
        working_dir: /var/www/html
        depends_on:
          - mysql
          - redis
        volumes:
          - /share/docker/etc/apache2:/etc/apache2
          - /share/web/shop:/var/www/html
        links:
          - mysql
          - redis
      nginx:
        image: nginx
        ports:
          - "80:80"
        volumes:
          - /share/docker/etc/nginx:/etc/nginx
        links:
          - shop
          - website
          - erp
          - images
    

    相关文章

      网友评论

        本文标题:Docker生产环境部署

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