1.下载安装

[root@cx-- ~]# curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
[root@cx-- ~]# chmod +x /usr/local/bin/docker-compose

2.docker-compose.yml详解 https://docs.docker.com/compose/compose-file/

version : ''        #docker引擎对应所支持的docker-compose文本格式
services: #本工程的服务配置列表 swapping: #spring boot的服务名,服务名自定义
container_name: swapping-compose
#本spring boot服务之后启动的容器实例的名字,如果指定,按照这个命名容器,如果未指定,容器命名规则是
#【[compose文件所在目录]_[服务名]_1】,例如【swappingdockercompose_swapping_1】
            #如果多启动,也就是docker-compose scale swapping= mysql=2的话,就不需要指定容器名称,否则会报错 容器名重复存在的问题
build: #基于Dockerfile文件构建镜像时使用的属性
context: . #代表当前目录,也可以指定绝对路径[/path/test/Dockerfile]或相对路径[../test/Dockerfile],尽量放在当前目录,便于管理
dockerfile: Dockerfile-swapping #指定Dockerfile文件名。如果context指定了文件名,这里就不用本属性了
ports: #影射端口属性
- "9666:9666" #建议使用字符串格式,指定宿主机端口映射到本容器的端口
volumes: #挂载属性
- .:/vol/development
#挂载路径在compose配置文件中只能指定容器内的目录,而docker run命令可以指定[宿主机目录:容器内目录]的挂载方式。可以使用:ro对容器内目录设置只读,来保护宿主机的文件系统
depends_on: #本服务启动,需要依赖哪些别的服务 例如这里;mysql服务就会先于swapping服务启动。至于配置多个的话,depends_on内的多个依赖的启动先后顺序未测试过
- mysql
links: #与depends_on相对应,上面控制启动顺序,这个控制容器连接问题。
- "mysql:mysql" #值可以是- mysql[- 服务名],也可以是- "mysql:mysql"[- "服务名:别名"]
restart: always #是否随docker服务启动重启
networks: #加入指定网络
- my-network #自定义的网络名
environment: #environment 和 Dockerfile 中的 ENV 指令一样会把变量一直保存在镜像、容器中,类似 docker run -e 的效果。设置容器的环境变量
- TZ=Asia/Shanghai #这里设置容器的时区为亚洲上海,也就解决了容器通过compose编排启动的 时区问题!!!!解决了容器的时区问题!!! mysql: #服务名叫mysql,自定义
container_name: mysql-compose #容器名
image: mysql:5.7 #虽然没有使用build,但使用了image,指定基于mysql:.7镜像为基础镜像来构建镜像。【使用build基于Dockerfile文件构建,Dockerfile文件中也有FROM基于基础镜像】
ports:
- "33061:3306"
command: [ #使用 command 可以覆盖容器启动后默认执行的命令
'--character-set-server=utf8mb4', #设置数据库表的数据集
'--collation-server=utf8mb4_unicode_ci', #设置数据库表的数据集
'--default-time-zone=+8:00' #设置mysql数据库的 时区问题!!!! 而不是设置容器的时区问题!!!!
]
environment:
MYSQL_DATABASE: swapping #设置初始的数据库名
MYSQL_ROOT_PASSWORD: #设置root连接密码
MYSQL_ROOT_HOST: '%'
restart: always
networks:
- my-network
networks: #关于compose中的networks的详细使用https://blog.csdn.net/Kiloveyousmile/article/details/79830810
my-network: #自定义的网络,会在第一次构建时候创建自定义网络,默认是bridge

3.compose格式对应docker引擎版本

官方地址:【https://docs.docker.com/compose/compose-file/#compose-and-docker-compatibility-matrix

docker-compose安装及docker-compose.yml详解的更多相关文章

  1. Docker Kubernetes Service 网络服务代理模式详解

    Docker Kubernetes  Service 网络服务代理模式详解 Service service是实现kubernetes网络通信的一个服务 主要功能:负载均衡.网络规则分布到具体pod 注 ...

  2. SpringBoot Docker Mysql安装,Docker安装Mysql

    SpringBoot Docker Mysql安装,Docker安装Mysql ================================ ©Copyright 蕃薯耀 2018年4月8日 ht ...

  3. Docker学习(六)——Dockerfile文件详解

    Docker学习(六)--Dockerfile文件详解 一.环境介绍 1.Dockerfile中所用的所有文件一定要和Dockerfile文件在同一级父目录下,可以为Dockerfile父目录的子目录 ...

  4. 【转】gitlab CI流水线配置文件.gitlab-ci.yml详解

    目录 GitLab CI流水线配置文件.gitlab-ci.yml详解 实验环境 GitLab CI介绍 .gitlab-ci.yml 配置参数 参数详解 script image services ...

  5. Elasticsearch-2.4.3的3节点安装(多种方式图文详解)(含 head、kopf、marvel、shield和watcher插件安装和使用)

    前提: Elasticsearch-2.4.3的下载(图文详解) Elasticsearch-2.4.3的单节点安装(多种方式图文详解) 我这里,以192.168.80.10(HadoopMaster ...

  6. Filebeat-1.3.1安装和设置(图文详解)(多节点的ELK集群安装在一个节点就好)(以Console Output为例)

    前期博客 Filebeat的下载(图文讲解) 前提 Elasticsearch-2.4.3的下载(图文详解) Elasticsearch-2.4.3的单节点安装(多种方式图文详解) Elasticse ...

  7. CentOS 6.3下Samba服务器的安装与配置方法(图文详解)

    这篇文章主要介绍了CentOS 6.3下Samba服务器的安装与配置方法(图文详解),需要的朋友可以参考下   一.简介  Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件, ...

  8. centos6.4安装配置vpn服务器步骤详解

      centos6.4安装配置vpn服务器步骤详解,从安装VPN到配置VPN服务器.配置VPN服务器的路由转发功能,每一步都很详细   一.VPN服务器环境说明 操作系统:CentOS release ...

  9. OpenVPN下载、安装、配置及使用详解

    OpenVPN下载.安装.配置及使用详解   OpenVPN简介 OpenVPN是一个用于创建虚拟专用网络(Virtual Private Network)加密通道的免费开源软件.使用OpenVPN可 ...

随机推荐

  1. 21-7-数组相关api

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Java 整型数组只有一个整数是只出现一次的,其余都出现两次

    package writtenExamination; /** * @author lindaZ * @date 2015年10月22日 * @todo 找出数组中仅出现一次的数,其余数字出现两次 * ...

  3. linux指令【参考鸟哥的Linux私房菜】

    date指令  显示日期 cal指令 显示日历 bc  计算器  scale+number  显示几位小数  quit退出bc tab键  命令提示  入输入ca,按下tab键,会将所有ca的指令全部 ...

  4. Vue登录登出以及JWT认证

    数据模型 主要用户名,密码,邮箱,头像,身份 const mongoose = require('mongoose') const schema = new mongoose.Schema({ use ...

  5. python 如何写好main函数

    每个程序员在学习编程的过程中,肯定没少写过main()函数,Python程序员也不例外.本文为大家分享Python之父Guido van Rossum推荐的函数写法,可以大大提高这个函数的灵活性. 一 ...

  6. wordpress翻译插件gtranslate

    https://www.gdstautoparts.com/

  7. php Excel导出id

    <form action="{:U('Index/files')}" method="post" enctype="multipart/form ...

  8. NX二次开发-UFUN单按钮模态对话框窗口打印uc1601用法

    NX9+VS2012 #include <uf.h> #include <uf_ui.h> UF_initialize(); //方法1(uc1601) uc1601();// ...

  9. vue中使用腾讯云Im

    在vue中使用腾讯云Im 通信时,官方给出的文档及sdk提供的都是es5的写法.我们在vue中使用均需要用es6的方式来改写sdk的js文件及按自己所需要的业务调用对应的api就行了 1.对sdk的j ...

  10. struts漏洞处理--老项目struts版本升级遇到的问题

    struts漏洞S2-016被扫描出,要求升级struts版本,查看生产struts版本2.0.12,该漏洞影响版本2.3.15以下,上网搜索,struts2.5以上的要求jdk1.7,由于项目过老, ...