docker-compose 一键部署lnmp

docker-compose用处

博客文章中有提到用Dockerfile来构建php、java项目、lnmp项目,可是会一步步部署容器,而后才能够看到,比较繁琐,docker-compose就能够一键部署
php

介绍

Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,一般由多个容器组成。使用Docker Compose再也不须要使用shell脚原本启动容器。 
Compose 经过一个配置文件来管理多个Docker容器,在配置文件中,全部的容器经过services来定义,而后使用docker-compose脚原本启动,中止和重启应用,和应用中的服务以及全部依赖服务的容器,很是适合组合使用多个容器进行开发的场景。html

安装

一、下载
https://github.com/docker/compose/releasesjava

docker-compose 一键部署lnmp

二、[root@docker tools]# mv docker-compose-Linux-x86_64 /usr/bin/docker-composemysql

运行

一、目录结构
[root@docker docker-compose]# tree -L 2
.
├── docker-compose.yml
├── mysql
│   ├── conf
│   └── data
├── nginx-docker
│   ├── Dockerfile-nginx
│   └── nginx.conf
├── php-docker
│   ├── Dockerfile-php
│   ├── php-5.6.32.tar.gz
│   ├── php-fpm.conf
│   └── php.ini
└── wwwroot
├── 123
├── index.html
├── test.php
├── wordpress
└── wordpress-4.9.4-zh_CN.tar.gznginx

mysql 使用的是官方镜像装的git

docker-compose 一键部署lnmp

三、cat docker-compose.yml 注意yml格式的编写,必须有空格
version: '3'
services:
php:
hostname: lnmp_php
container_name: lnmp_php
image: 192.168.1.13/library/php:v5.6.32
networks:github

  • lnmp
    volumes:
  • ./wwwroot:/data/wwwsql

    nginx:
    hostname: nginx
    container_name: nginx_v1
    image: 192.168.1.13/library/nginx:v1.15
    ports:docker

  • 81:80
    depends_on:
  • php
  • mysql
    networks:
  • lnmp
    volumes:
  • ./wwwroot:/data/wwwshell

    mysql:
    hostname: mysql
    container_name: mysql_wordpress
    image: mysql:5.6
    ports:

  • 3306:3306
    networks:
  • lnmp
    volumes:
  • ./mysql/conf/my.cnf:/etc/my.cnf
  • ./mysql/data:/var/lib/mysql

    environment:
    MYSQL_ROOT_PASSWORD: 123456
    MYSQL_DATABASE: wordpress
    MYSQL_USER: user
    MYSQL_PASSWORD: user123

networks:
lnmp:

配置文件讲解

0、depends_on:由于服务启动时,如果php没启动,nginx找不到,因此须要先启动php,mysql,再启动nginx
一、version: '3':指的docker-compose 的版本,有1,2,3版本
二、services:指的安装哪些服务,lnmp服务
三、hostname:容器的主机名,进入容器的名字
四、container_name:容器的名字,docker ps -a 中的
五、image:引入镜像,如果本地没有,就去官网下载
六、networks:自定义网络,默认是桥接模式,能够用docker images ls 看
七、volumes:至关于bind这样的数据卷挂载,可使用绝对或者相对路径
八、也能够本身构建镜像
build:
context: ../ 这个是在哪一个目录
dockerfile: path/of/Dockerfile 这个是哪一个dockerfile
九、ports: 开放端口,好比3306:3306 ,那这样宿主机也能够链接管理
十、environment :mysql参数设置

运行启动

一、前台运行,看是否有报错
docker-compose -f docker-compose.yml up

二、后台运行
docker-compose -f docker-compose.yml up -d

三、若是有报错看日志
docker logs f18c58b39949 -f

维护

一、nginx服务器须要共享须要常常修改的文件,如:nginx.conf、wwwroot二、php 也要设置wwwroot,否则解析不了三、mysql:须要共享配置文件、数据库目录

相关文章
相关标签/搜索