参考地址:https://blog.csdn.net/Kiloveyousmile/article/details/79830810

参考地址:https://docs.docker.com/compose/networking/#configure-the-default-network

参考地址:https://www.imooc.com/article/34135

参考地址:https://www.jianshu.com/p/2217cfed29d7

====================================================

一.docker-compose.yml属性详解

  1.使用注意

  2.属性详解

  3.1 compose格式对应docker引擎版本

  3.2 关于容器时区设置和mysql数据库自己的时区设置

二.docker-compose 命令详解

====================================================

一.docker-compose.yml属性详解

docker-compose.yml文本内容如下:

version : '3'
services: swapping:
container_name: swapping-compose
build:
context: .
dockerfile: Dockerfile-swapping
ports:
- "9666:9666"
volumes:
- .:/vol/development
depends_on:
- mysql
links:
- "mysql:mysql"
restart: always
networks:
- my-network
environment:
- TZ=Asia/Shanghai mysql:
container_name: mysql-compose
image: mysql:5.7
ports:
- "33061:3306"
command: [
'--character-set-server=utf8mb4',
'--collation-server=utf8mb4_unicode_ci',
'--default-time-zone=+8:00'
]
environment:
MYSQL_DATABASE: swapping
MYSQL_ROOT_PASSWORD: 398023
MYSQL_ROOT_HOST: '%'
restart: always
networks:
- my-network
networks:
my-network:

使用注意:

  1.docker-compose.yml[或者docker-compose.yaml]文件

  2.构建服务的镜像需要的Dockerfile文件

  3.构建服务需要的jar包

需要尽量放在同一个目录下!!

详细解释:

version : '3'        #docker引擎对应所支持的docker-compose文本格式
services: #本工程的服务配置列表 swapping: #spring boot的服务名,服务名自定义
container_name: swapping-compose
#本spring boot服务之后启动的容器实例的名字,如果指定,按照这个命名容器,如果未指定,容器命名规则是
#【[compose文件所在目录]_[服务名]_1】,例如【swappingdockercompose_swapping_1】
            #如果多启动,也就是docker-compose scale swapping=3 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:5.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: 398023 #设置root连接密码
MYSQL_ROOT_HOST: '%'
restart: always
networks:
- my-network
networks: #关于compose中的networks的详细使用https://blog.csdn.net/Kiloveyousmile/article/details/79830810
my-network: #自定义的网络,会在第一次构建时候创建自定义网络,默认是bridge

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

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

查看docker版本信息命令

2.关于容器时区设置和mysql数据库自己的时区设置

设置容器的时区,需要添加

environment:
- TZ=Asia/Shanghai

而数据库的时区设置【和编码设置】就可以,当然也可以在mysql服务既设置容器时区,又设置数据库时区。不冲突。

command: [
'--character-set-server=utf8mb4',
'--collation-server=utf8mb4_unicode_ci',
'--default-time-zone=+8:00'
]

二.docker-compose命令详解

请直接参考:https://www.imooc.com/article/34135

用的多了,自己就会了。这里就不记录了!!!

【docker-compose】docker-compose.yml文本内容详解 + docker-compose命令详解 + docker-compose启动服务容器时区设置的更多相关文章

  1. linux shell 脚本攻略学习16--wc命令详解,tree命令详解

    在文本处理的工作中,统计文件的行数,单词数和字符数非常有用.而对于开发人员本身来说,统计LOC(line of code ,代码行数)是一件重要的工作.linux中有什么命令可以帮助我们做统计呢?没错 ...

  2. linux shell 脚本攻略学习12--文件权限详解,chmod命令详解,chown命令详解,chattr命令详解

    文件权限详解 一.chmod命令详解 文件权限和所有权是Unix/Linux文件系统最显著的特征之一.linux中的每一个文件都与多种权限类型相关联,在这些权限中主要分类为3种: 用户(User)是文 ...

  3. Linux 路由表详解及 route 命令详解

    参考资料 Linux 内核的路由表 通过 route 命令查看 Linux 内核的路由表: [root@VM_139_74_centos ~]# route Kernel IP routing tab ...

  4. shell脚本--显示文本内容

    shell脚本显示文本内容及相关的常用命令有cat.more.less.head.tail.nl 首先是cat,cat最常用的就是一次性显示文件的所有内容,如果一个文件的内容很多的话,那么就不是很方便 ...

  5. docker容器时区问题

    原文:docker容器时区问题 版权声明:本文为博主原创文章,随意转载. https://blog.csdn.net/Michel4Liu/article/details/80890868 本系列目录 ...

  6. 【Linux 运维】查看网络连接状态信息之netstat和ss命令详解

    一.netstat 常用命令详解 通过man netstat可以查看netstat的帮助信息: netstat 命令:用于显示各种网络相关信息,如网络连接,路由表,接口状态,无效连接,组播成员 等等. ...

  7. oracle数据库exp/imp命令详解

    转自http://wenku.baidu.com/link?url=uD_egkkh7JtUYJaRV8YM6K8CLBT6gPJS4UlSy5WKhz46D9bnychTPdgJGd7y6UxYtB ...

  8. 附003.Docker Compose命令详解

    一 Docker Compose命令格式 Usage: docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...] docker- ...

  9. docker compose启动服务超时重启记录

    一.停docker systemctl stop docker 然后ps -aux grep docker发现有些docker进程还是存在,此时强杀存在的docker进程:ps -aux|grep d ...

随机推荐

  1. CVE-2011-0104 Microsoft Office Excel缓冲区溢出漏洞 分析

    漏洞简述   Microsoft Excel是Microsoft Office组件之一,是流行的电子表格处理软件.        Microsoft Excel中存在缓冲区溢出漏洞,远程攻击者可利用此 ...

  2. GrideVlew提供点击按钮添加新数据,单击项目修改,长按删除功能

    package com.example.wang.myapplication; import android.app.AlertDialog; import android.content.Dialo ...

  3. centos下安装zabbix

    1. 安装mysql CREATE DATABASE zabbix;GRANT ALL ON zabbix.* TO 'zabbix'@'192.168.19.%' IDENTIFIED BY '12 ...

  4. snmp常见操作

    常用snmp OID说明下面这些值可以手动连接进行获取数据: 用zabbix监控交换机和路由器需要一款能够获取网络设备OID的工具,可用getif来获得OID 也可以使用snmpwalk 配置交换机的 ...

  5. bzoj 4552

    4552 思路: 二分线段树: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 100005 #define ...

  6. Educational Codeforces Round 9 D - Longest Subsequence

    D - Longest Subsequence 思路:枚举lcm, 每个lcm的答案只能由他的因子获得,类似素数筛搞一下. #include<bits/stdc++.h> #define ...

  7. 微信公众号第三方平台生成自定义菜单提示 获取"access_token失败"

    在微信公众号第三方平台要生成自定义菜单时,程序反应很慢,最终提示"获取access_token失败"(之前程序无改动,使用时间已久),查了大半天,找不出原因. 排除.在微信公众号平 ...

  8. SVM 的推导、特点、优缺点、多分类问题及应用

    SVM有如下主要几个特点: (1)  非线性映射是SVM方法的理论基础,SVM利用内积核函数代替向高维空间的非线性映射: (2)  对特征空间划分的最优超平面是SVM的目标,最大化分类边际的思想是SV ...

  9. Linux下 rz 和 sz 命令的安装与使用

    目录 Linux下 rz 和 sz 命令的安装与使用 rz/sz命令的安装 sz命令-发送文件到本地(下载): rz命令-本地上传文件到服务器(上传): 声明 Linux下 rz 和 sz 命令的安装 ...

  10. ubuntu 安装 theano

    参考博客: http://www.cnblogs.com/anyview/p/5025704.html 1. 安装gfortran, numpy, scipy, sklearn, blas, atla ...