@File
2019-10-08T11:27:26.000000Z
字数 1932
阅读 52
系统
# 指定compose 版本
version: '3'
services:
# redis
redis:
image: redis
restart: always
container_name: redis
ports:
- 6379:6379
# 通过读取 dockerfile 创建容器
webapp:
# 指向dockerfile文件
build: ./
# 映射端口 相当于 -p 宿主机端口:容器端口
ports:
- '8080:8080'
# 依赖于其他的容器
links:
- mysql
# 通过 compose 创建容器
mysql:
# 基础镜像
image: mysql:5.7.22
# 重启机制
restart: always
# 容器的名称
container_name: mysql
# 映射端口
ports:
- '3306:3306'
# 设置环境变量
environment:
# 设置root用户的密码
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: mysql
MYSQL_PASSWORD: mysql
# 设置时区
TZ: Asia/Shanghai
command:
# 防止低版本的连接客服报错的问题
--default-authentication-plugin=mysql_native_password
# 设置数据库的编码
--character-set-server=utf8mb4
# 设置数据库默认的排序方式
--collation-server=utf8mb4_general_ci
# 不允许时间字段 not null
--explicit_defaults_for_timestamp=true
# Linux 表名区分大小写 1 表示不区分大小写
--lower_case_table_names=1
# 挂载
volumes:
# 数据的数据挂载到容器中
- ./mysql/data:/var/lib/mysql
- ./mysql/log:/var/log/mysql
- ./mysql/config:/etc/mysql
image
基础镜像指定为镜像名称或镜像 ID。如果镜像在本地不存在,
Compose
将会尝试拉去这个镜像。
build
执行 dockerfile指定
Dockerfile
所在文件夹的路径。Compose
将会利用它自动构建这个镜像,然后使用这个镜像。
command
执行命令覆盖容器启动后默认执行的命令。
links
连接容器链接到其它服务中的容器。使用服务名称(同时作为别名)或服务名称:服务别名
(SERVICE:ALIAS)
格式都可以。
external_links
连接容器链接到 docker-compose.yml 外部的容器,甚至 并非
Compose
管理的容器。参数格式跟links
类似。
ports
映射端口暴露容器端口到主机的任意端口或指定端口
expose
暴露端口暴露容器给link到当前容器的容器,或者暴露给同一个networks的容器
volumes
挂载主机卷挂载到容器指定路径中。
volumes_from
挂载从另一个服务或容器挂载它的所有卷。
environment
环境变量设置环境变量。只给定名称的变量会自动获取它在 Compose 主机上的值,可以用来防止泄露不必要的数据。
networks
用于设置指定网络,子标签aliases用于设置服务别名,相同的别名可以在不同的网络中拥有不同的别名。
可以在service中使用,也可以在顶级标签中使用
命令 | 描述 |
---|---|
docker-compose up -d | 构建建启动容器 |
docker-compose exec bash | 登录到容器中 |
docker-compose down | 删除所有容器,镜像 |
docker-compose ps | 显示所有容器 |
docker-compose restart | 重新启动容器 |
docker-compose run --no-deps --rm php-fpm php -v | 在php-fpm中不启动关联容器,并容器执行php -v 执行完成后删除容器 |
docker-compose build | 构建镜像 |
docker-compose build --no-cache | 不带缓存的构建 |
docker-compose logs | 查看的日志 |
docker-compose logs -f | 验证(docker-compose.yml)文件配置,当配置正确时,不输出任何内容,当文件配置错误,输出错误信息 |
docker-compose pause | 暂停容器 |
docker-compose unpause | 恢复容器 |
docker-compose rm | 删除容器(删除前必须关闭容器) |
docker-compose stop | 停止容器 |
docker-compose start | 启动容器 |