-
docker-compose下载
资源介绍
docker-compose 搭建的lamp+redis 代码 附上docker-compose
# 标准配置文件应该包含 version、services、networks 三大部分,
# 其中最关键的就是 services 和 networks 两个部分,下面先来看 services 的书写规则
# 指定版本号
version: '2'
services:
# 在 services 标签下的第二级标签是 console,这个名字是用户自己自定义,它就是服务名称。
console:
# 为自定义的容器指定一个名称,而不是使用默认的名称
container_name: console
# 容器内置名称
hostname: console
# 指明路径
build:
# context 指定绝对路径或者相对路径
context: ./images/console
# dockerfile 指定 Dockerfile 的文件名称
dockerfile: Dockerfile
# volumes_from 从其它容器或者服务挂载数据卷,
# 可选的参数是 :ro 或 :rw,前者表示容器只读,后者表示容器对数据卷是可读可写的(默认情况为可读可写的)。
volumes_from:
- php
# 挂载一个目录或者一个已存在的数据卷容器,可以直接使用 HOST:CONTAINER 这样的格式
# ,或者使用 HOST:CONTAINER:ro 这样的格式,后者对于容器来说,数据卷是只读的,这样可以有效保护宿主机的文件系统
volumes:
# 使用绝对路径挂载数据卷
- /root/.ssh/:/root/.ssh/
# 类似于使用 docker run 的效果 我也不知道 不写因为console并不是直接启动导致镜像不会产生
tty: true
# web,这个名字是用户自己自定义,它就是服务名称。
web:
# 为自定义的容器指定一个名称,而不是使用默认的名称
container_name: web
# 容器内置名称
hostname: web
# 指明路径
build:
# context 指定绝对路径或者相对路径
context:
./images/nginx
# dockerfile 指定 Dockerfile 的文件名称
dockerfile: Dockerfile
# 映射端口
ports:
- '80:80'
# 此选项解决了启动顺序的问题 这个的意思是必须在php启动以后才能启动
# 注意的是,默认情况下使用 docker-compose up web 这样的方式启动 web 服务时,
# 也会启动 php 服务,因为在配置文件中定义了依赖关系
depends_on:
- php
# volumes_from 从其它容器或者服务挂载数据卷,
volumes_from:
- php
volumes:
# 已经存在的命名的数据卷
- nginx-log:/var/log/nginx
# 以 Compose 配置文件为中心的相对路径作为数据卷挂载到容器
- ./images/nginx/sites-enabled:/etc/nginx/sites-enabled
- ./images/nginx/cert:/etc/nginx/cert
# 加入指定网络
networks:
default:
# 同一网络上的其他容器可以使用服务器名称或别名来连接到其他服务的容器
aliases:
- web.sunchanghao.top
- mid.sunchanghao.top
- sevice.sunchanghao.top
- admin.sunchanghao.top
# php,这个名字是用户自己自定义,它就是服务名称。
php:
# 为自定义的容器指定一个名称,而不是使用默认的名称
container_name: php
# 容器内置名称
hostname: php
# 服务除了可以基于指定的镜像,还可以基于一份 Dockerfile,
# 在使用 up 启动之时执行构建任务,这个构建标签就是 build,它可以指定 Dockerfile
# 所在文件夹的路径。Compose 将会利用它自动构建这个镜像,然后使用这个镜像启动服务容器
build:
# context 选项可以是 Dockerfile 的文件路径,也可以是到链接到 git 仓库的 url
# 当提供的值是相对路径时,它被解析为相对于撰写文件的路径,此目录也是发送到 Docker 守护进程的 context
context: ./images/php
# 使用此 dockerfile 文件来构建,必须指定构建路径
dockerfile: Dockerfile
# 挂载一个目录或者一个已存在的数据卷容器,
volumes:
# 以 Compose 配置文件为中心的相对路径作为数据卷挂载到容器。
- ./app:/mnt/app
# db,这个名字是用户自己自定义,它就是服务名称。
db:
# 为自定义的容器指定一个名称,而不是使用默认的名称
container_name: db
# 容器内置名称
hostname: db
# 从指定的镜像中启动容器,可以是存储仓库、标签以及镜像 ID
image: mysql:5.7
environment:
MYSQL_USER: 'sch'
MYSQL_PASS: '1111'
MYSQL_ROOT_PASSWORD: 'root'
volumes:
- db:/var/lib/mysql
ports:
- '3306:3306'
redis:
# 为自定义的容器指定一个名称,而不是使用默认的名称
container_name: redis
# 容器内置名称
hostname: redis
# image 则是指定服务的镜像名称或镜像 ID。如果镜像在本地不存在,Compose 将会尝试拉取这个镜像。
image: redis:3.2.7
# 设置端口号
ports:
- '6379:6379'
# 挂载一个目录或者一个已存在的数据卷容器
volumes:
# 已经存在的命名的数据卷。
- redis:/data
# node
volumes:
nginx-log:
# 设置volume的驱动,默认是local.
driver: local
db:
driver: local
redis:
driver: local