一、容器编排基础
1,容器编排概念
-
<李>可以指定各个容器中的程序是有依赖关系的李>
<李>比如有个web服务必须在mysql正常的情况下,才能运行,那么这个时候就是web容器是依赖mysql容器的,只有mysql容器正常启动,网络容器才能启动。
2,容器编排工具
李> <李>码头工人组成李> <李> k8李> <李> k3二,组成详解
李>1,什么是构成
-
<李>码头工人组成将所管理的容器分为三层,分别是工程(项目),服务(服务),容器(容器)李>
<李>码头工人组成运行目录下的所有文件(docker-compose.yml)组成一个工程,一个工程包含多个服务,每个服务中定义了容器运行的镜像,参数,依赖,一个服务可包括多个容器实例李>
2,安装compse
<强>方法1:用提供的这个conpose文件,将这个文件放到/usr/地方/bin 强>
<强>方法2:用epel和额外的源中的安装包强>
<强> 1)配置百胜源强>
<代码> root@host1 ~ #猫/etc/yum.repos.d/epel.repo (epel) name=epel baseurl=https://mirrors.tuna.tsinghua.edu.cn/epel/7Server/x86_64/启用=1 gpgcheck=0 代码>
<强> 2)安装docker-compose 强>
<代码> [root@host1 ~] # yum安装docker-compose - y 代码>
3,组成参数详解
先看一个dyml文件样例
参数1:构建
-
<李>构建,它可以指定Dockerfile所在文件夹的路径.Compose将会利用它自动构建这个镜像,然后使用这个镜像启动服务容器。李>
<李>也可以是相对路径,只要上下文确定就可以读取到Dockerfile。
参数2:上下文
李> <李>这个是用来指定dockerfile文件的工作目录的李> <李>这是构建的一个子选项李>参数3:dockerfile h5>
<李>指定具体的dockerfile来做镜像李>
<李>这是构建的一个子选项李>
参数4:ARGS h5>
<李>设置变量,这些变量仅仅在构建的过程中才会用到李>
<李>这是构建的一个子选项李>
参数5:标签/h5>
<李>这是构建的一个子选项李>
<李>用来指定建立过程中的元数据李>
参数6:shm_size h5>
<李>这是构建的一个子选项,控制基于建立构建的镜像的参数配置李>
<李>/dev/shm是linux中系统中物理内存的映射,使用的/dev/shm对文件操作的效率会高很多,我在优化系统的时候,常用用到李>
参数7:命令/h5>
<李>使用命令可以覆盖容器启动后默认执行的命令。
参数8:图像/h5> 李>
<李>图像则是指定服务的镜像名称或镜像ID。李>
<李>如果镜像在本地不存在,组成将会尝试拉取这个镜像。
<代码>图片:复述
图片:ubuntu: 14.04
图片:tutum/influxdb
图片:example-registry.com: 4000/postgresql
图片:a4bc65fd 代码>
李>
参数9:container_name h5>
<李>可以使用这个标签指定容器名称李>
参数10:depends_on h5>
<李>这个标签解决了容器的依赖,启动先后的问题李>
案例:下面容器会先启动复述和数据库两个服务,最后才启动web服务:
-
<李>设置变量,这些变量仅仅在构建的过程中才会用到李>
<李>这是构建的一个子选项李>
参数5:标签/h5>
<李>这是构建的一个子选项李>
<李>用来指定建立过程中的元数据李>
参数6:shm_size h5>
<李>这是构建的一个子选项,控制基于建立构建的镜像的参数配置李>
<李>/dev/shm是linux中系统中物理内存的映射,使用的/dev/shm对文件操作的效率会高很多,我在优化系统的时候,常用用到李>
参数7:命令/h5>
<李>使用命令可以覆盖容器启动后默认执行的命令。
参数8:图像/h5> 李>
<李>图像则是指定服务的镜像名称或镜像ID。李>
<李>如果镜像在本地不存在,组成将会尝试拉取这个镜像。
<代码>图片:复述
图片:ubuntu: 14.04
图片:tutum/influxdb
图片:example-registry.com: 4000/postgresql
图片:a4bc65fd 代码>
李>
参数9:container_name h5>
<李>可以使用这个标签指定容器名称李>
参数10:depends_on h5>
<李>这个标签解决了容器的依赖,启动先后的问题李>
案例:下面容器会先启动复述和数据库两个服务,最后才启动web服务:
-
<李>这是构建的一个子选项,控制基于建立构建的镜像的参数配置李>
<李>/dev/shm是linux中系统中物理内存的映射,使用的/dev/shm对文件操作的效率会高很多,我在优化系统的时候,常用用到李>
参数7:命令/h5>
<李>使用命令可以覆盖容器启动后默认执行的命令。
参数8:图像/h5> 李>
<李>图像则是指定服务的镜像名称或镜像ID。李>
<李>如果镜像在本地不存在,组成将会尝试拉取这个镜像。
<代码>图片:复述
图片:ubuntu: 14.04
图片:tutum/influxdb
图片:example-registry.com: 4000/postgresql
图片:a4bc65fd 代码>
李>
参数9:container_name h5>
<李>可以使用这个标签指定容器名称李>
参数10:depends_on h5>
<李>这个标签解决了容器的依赖,启动先后的问题李>
案例:下面容器会先启动复述和数据库两个服务,最后才启动web服务:
参数8:图像/h5> 李>
<李>图像则是指定服务的镜像名称或镜像ID。李>
<李>如果镜像在本地不存在,组成将会尝试拉取这个镜像。
<代码>图片:复述
图片:ubuntu: 14.04
图片:tutum/influxdb
图片:example-registry.com: 4000/postgresql
图片:a4bc65fd 代码>
李>
-
<李>可以使用这个标签指定容器名称李>
参数10:depends_on h5>
<李>这个标签解决了容器的依赖,启动先后的问题李>
案例:下面容器会先启动复述和数据库两个服务,最后才启动web服务:
参数11:dns h5>
<李>指定DNS服务器的地址
<代码> dns: 8.8.8.8
域名:
——8.8.8.8
——9.9.9.9 代码>
李>
参数12:dns_search h5>
<李>设置搜索域
<代码> dns_search: example.com
dns_search:
——dc1.example.com
——dc2.example.com 代码>
李>
参数13:tmpfs h5>
<李>挂载临时目录到容器内部
<代码> tmpfs:
——/运行
——/tmp/<代码>
李>
参数14:入口点
-
<李>设置搜索域
<代码> dns_search: example.com dns_search: ——dc1.example.com ——dc2.example.com 代码>李>