[关闭]
@File 2019-10-08T11:27:26.000000Z 字数 1932 阅读 52

docker-compose

系统


yml 模板

  1. # 指定compose 版本
  2. version: '3'
  3. services:
  4. # redis
  5. redis:
  6. image: redis
  7. restart: always
  8. container_name: redis
  9. ports:
  10. - 6379:6379
  11. # 通过读取 dockerfile 创建容器
  12. webapp:
  13. # 指向dockerfile文件
  14. build: ./
  15. # 映射端口 相当于 -p 宿主机端口:容器端口
  16. ports:
  17. - '8080:8080'
  18. # 依赖于其他的容器
  19. links:
  20. - mysql
  21. # 通过 compose 创建容器
  22. mysql:
  23. # 基础镜像
  24. image: mysql:5.7.22
  25. # 重启机制
  26. restart: always
  27. # 容器的名称
  28. container_name: mysql
  29. # 映射端口
  30. ports:
  31. - '3306:3306'
  32. # 设置环境变量
  33. environment:
  34. # 设置root用户的密码
  35. MYSQL_ROOT_PASSWORD: root
  36. MYSQL_USER: mysql
  37. MYSQL_PASSWORD: mysql
  38. # 设置时区
  39. TZ: Asia/Shanghai
  40. command:
  41. # 防止低版本的连接客服报错的问题
  42. --default-authentication-plugin=mysql_native_password
  43. # 设置数据库的编码
  44. --character-set-server=utf8mb4
  45. # 设置数据库默认的排序方式
  46. --collation-server=utf8mb4_general_ci
  47. # 不允许时间字段 not null
  48. --explicit_defaults_for_timestamp=true
  49. # Linux 表名区分大小写 1 表示不区分大小写
  50. --lower_case_table_names=1
  51. # 挂载
  52. volumes:
  53. # 数据的数据挂载到容器中
  54. - ./mysql/data:/var/lib/mysql
  55. - ./mysql/log:/var/log/mysql
  56. - ./mysql/config:/etc/mysql

配置参数

1. image 基础镜像

指定为镜像名称或镜像 ID。如果镜像在本地不存在,Compose 将会尝试拉去这个镜像。

2. build 执行 dockerfile

指定 Dockerfile 所在文件夹的路径。 Compose 将会利用它自动构建这个镜像,然后使用这个镜像。

3. command 执行命令

覆盖容器启动后默认执行的命令。

链接到其它服务中的容器。使用服务名称(同时作为别名)或服务名称:服务别名 (SERVICE:ALIAS) 格式都可以。

链接到 docker-compose.yml 外部的容器,甚至 并非 Compose 管理的容器。参数格式跟 links 类似。

6. ports 映射端口

暴露容器端口到主机的任意端口或指定端口

7. expose 暴露端口

暴露容器给link到当前容器的容器,或者暴露给同一个networks的容器

8. volumes 挂载

主机卷挂载到容器指定路径中。

9. volumes_from 挂载

从另一个服务或容器挂载它的所有卷。

10. environment 环境变量

设置环境变量。只给定名称的变量会自动获取它在 Compose 主机上的值,可以用来防止泄露不必要的数据。

11. 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 启动容器
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注