Docker学习程序员

Docker生产环境部署

2016-12-29  本文已影响244人  飞鸟2014

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
上一篇下一篇

猜你喜欢

热点阅读