DNMRP(即 Docker + Nginx + MySQL + Redis + PHP)
一、安装docker和docker-compose
1、具体安装步骤:
- docker:https://docs.docker.com/engine/installation/
- docker-compose:https://docs.docker.com/compose/install/
注意:Docker安装要求Linux 3.10
以上版本,用uname -a
命令可查看到。
安装之后,可查看版本:
docker -v
docker-compose -v
2、使用国内镜像仓库
对于Docker 1.10+,打开配置文件 /etc/docker/daemon.json
(没有时新建该文件):
{
"registry-mirrors": ["https://6evg8u3r.mirror.aliyuncs.com"]
}
然后重启Docker Daemon:
systemctl daemon-reload
systemctl restart docker
Docker 1.10以下请看:https://yq.aliyun.com/articles/29941。
3、目录文件
4、docker-compose.yml文件
#能够编排管理4个容器,php/redis/nginx/mysql
#参数之间必须有个空格
version: "3.6"
services: #服务
nginx:
image: nginx:alpine #指定镜像名称
container_name: nginx-compose #容器名称
ports: #端口映射
- "8080:80"
networks:
mynetwork:
ipv4_address: 172.18.0.8 #设置ip地址
depends_on:
- php
stdin_open: true
volumes:
- /docker/01/nginx/conf:/conf
privileged: true #特殊权限
working_dir: /conf #工作目录
expose:
- "80"
php:
image: php:7.3-fpm-alpine
container_name: php-compose
networks:
mynetwork:
ipv4_address: 172.18.0.7 #设置ip地址
working_dir: /www #工作目录
links:
- mysql:mysql-compose
- redis:redis-compose
volumes:
- /docker/01/php/www:/www
stdin_open: true #打开标准输入
tty: true #模拟伪终端
ports:
- "9005:9000"
expose:
- "9000"
redis:
image: redis:latest
container_name: redis-compose
networks:
mynetwork:
ipv4_address: 172.18.0.6 #设置ip地址
working_dir: /usr/src/redis #工作目录
stdin_open: true
tty: true
ports:
- "6389:6379"
volumes:
- /docker/01/redis:/usr/src/redis
mysql:
image: mysql:latest
container_name: mysql-compose
environment:
MYSQL_ROOT_PASSWORD: "123456"
networks:
mynetwork:
ipv4_address: 172.18.0.5 #设置ip地址
volumes:
- /docker/01/mysql/conf/my.cnf:/usr/src/mysql/my.cnf
ports:
- "33061:3306"
#设置网络环境
networks:
#引用外部预先定义好的网段
mynetwork:
external:
name: mynetwork
5、运行docker-compose.yaml文件
二、docker-compose 常用命令
3.常用命令
docker-compose up -d nginx 构建建启动nignx容器
docker-compose exec nginx bash 登录到nginx容器中
docker-compose down 删除所有nginx容器,镜像
docker-compose ps 显示所有容器
docker-compose restart nginx 重新启动nginx容器
docker-compose run --no-deps --rm php-fpm php -v 在php-fpm中不启动关联容器,并容器执行php -v 执行完成后删除容器
docker-compose build nginx 构建镜像 。
docker-compose build --no-cache nginx 不带缓存的构建。
docker-compose logs nginx 查看nginx的日志
docker-compose logs -f nginx 查看nginx的实时日志
docker-compose config -q 验证(docker-compose.yml)文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息。
docker-compose events --json nginx 以json的形式输出nginx的docker日志
docker-compose pause nginx 暂停nignx容器
docker-compose unpause nginx 恢复ningx容器
docker-compose rm nginx 删除容器(删除前必须关闭容器)
docker-compose stop nginx 停止nignx容器
docker-compose start nginx 启动nignx容器