docker php 一键部署,docker-compose 一键部署lnmp

docker-compose用处

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

介绍

Docker Compose是一个用来定义和运行复杂应用的Docker工具。一个使用Docker容器的应用,通常由多个容器组成。使用Docker Compose不再需要使用shell脚本来启动容器。

Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。

安装

docker php 一键部署,docker-compose 一键部署lnmp_第1张图片

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

运行

1、目录结构

[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.gz

mysql 使用的是官方镜像装的

docker php 一键部署,docker-compose 一键部署lnmp_第2张图片

3、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:

lnmp

volumes:

./wwwroot:/data/www

nginx:

hostname: nginx

container_name: nginx_v1

image: 192.168.1.13/library/nginx:v1.15

ports:

81:80

depends_on:

php

mysql

networks:

lnmp

volumes:

./wwwroot:/data/www

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

1、version: '3':指的docker-compose 的版本,有1,2,3版本

2、services:指的安装哪些服务,lnmp服务

3、hostname:容器的主机名,进入容器的名字

4、container_name:容器的名字,docker ps -a 中的

5、image:引入镜像,若是本地没有,就去官网下载

6、networks:自定义网络,默认是桥接模式,可以用docker images ls 看

7、volumes:相当于bind这样的数据卷挂载,可以使用绝对或者相对路径

8、也可以自己构建镜像

build:

context: ../ 这个是在哪个目录

dockerfile: path/of/Dockerfile 这个是哪个dockerfile

9、ports: 开放端口,比如3306:3306 ,那这样宿主机也可以连接管理

10、environment :mysql参数设置

运行启动

1、前台运行,看是否有报错

docker-compose -f docker-compose.yml up

2、后台运行

docker-compose -f docker-compose.yml up -d

3、如果有报错看日志

docker logs f18c58b39949 -f

维护

1、nginx服务器需要共享需要经常修改的文件,如:nginx.conf、wwwroot

2、php 也要设置wwwroot,不然解析不了

3、mysql:需要共享配置文件、数据库目录

你可能感兴趣的:(docker,php,一键部署)