站内推广的主要目的是,wordpress文章html,深圳建设集团有限公司怎么样,列车营销网站怎么做目录 一、Docker-Compose介绍
1.1 Docker-Compose的概述
1.2 Docker-Compose 用来实现Docker容器快速编排
1.3 Docker-compose模板文件简介
二、YAML简介
2.1 YAML的概述
2.2 YAML的基本语法规则
2.3 YAML支持的数据架构
三、配置内部常用字段
四、Docker-compose 常…目录 一、Docker-Compose介绍
1.1 Docker-Compose的概述
1.2 Docker-Compose 用来实现Docker容器快速编排
1.3 Docker-compose模板文件简介
二、YAML简介
2.1 YAML的概述
2.2 YAML的基本语法规则
2.3 YAML支持的数据架构
三、配置内部常用字段
四、Docker-compose 常用命令
五、compose部署
5.1 准备依赖文件
5.2 编写配置文件 docker-compose.yml
5.3 浏览器访问http://192.168.19.101:1216 一、Docker-Compose介绍
1.1 Docker-Compose的概述
Docker-Compose 项目是Docker官方的开源项目负责实现对Docker容器集群的快速编排。Docker-Compose 项目由 Python 编写调用 Docker 服务提供的API来对容器进行管理。因此只要所操作的平台支持 Docker API就可以在其上利用Compose 来进行编排管理。Docker-Compose将所管理的容器分为三层分别是 工程project服务service以及容器container。
Docker-Compose运行目录下的所有文件docker-compose.yml
extends文件或环境变量文件等组成一个工程若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服务每个服务中定义了容器运行的镜像、参数、依赖。一个服务当中可包括多个容器实例Docker-Compose并没有解决负载均衡的问题
因此需要借助其它工具实现服务发现及负载均衡比如Consul。
Docker-Compose的工程配置文件默认为docker-compose.yml可通过环境变量COMPOSE_FILE或-f参数自定义配置文件其定义了多个有依赖关系的服务及每个服务运行的容器。使用一个Dockerfile模板文件可以让用户很方便的定义一个单独的应用容器。在工作中经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个Web项目除了Web服务容器本身往往还需要再加上后端的数据库服务容器甚至还包括负载均衡容器等。Compose允许用户通过一个单独的docker-compose.yml模板文件YAML 格式来定义一组相关联的应用容器为一个项目project。Docker-Compose项目由Python编写调用Docker服务提供的API来对容器进行管理。因此只要所操作的平台支持Docker API 就可以在其上利用Compose来进行编排管理。
1.2 Docker-Compose 用来实现Docker容器快速编排
通过 Docker-Compose 不需要使用shell脚本来启动容器而使用 YAML 文件来配置应用程序需要的所有服务然后使用一个命令根据 YAML 的文件配置创建并启动所有服务。
1.3 Docker-compose模板文件简介
Compose允许用户通过一个docker-compose.yml模板文件YAML 格式来定义一组相关联的应用容器为一个项目project。Compose模板文件是一个定义服务、网络和卷的YAML文件。Compose模板文件默认路径是当前目录下的docker-compose.yml可以使用.yml或.yaml作为文件扩展名。Docker-Compose标准模板文件应该包含version、services、networks 三大部分最关键的是services和networks两个部分。
二、YAML简介
2.1 YAML的概述
YAML是一种标记语言它可以很直观的展示数据序列化格式可读性高。类似 json数据描述语言语法比 json简单的很多。YAML数据结构通过缩进来表示连续的项目通过减号来表示键值对用冒号分隔数组用中括号 [ ] 括起来 hash 用花括号 { }括起来。
2.2 YAML的基本语法规则
不支持制表符 tab 键缩进只能使用空格缩进通常开头缩进2个空格字符后缩进1个空格如冒号 : 、逗号 , 、横杠 -用#号注释如果包含特殊字符用单引号 ‘’ 引起来作为普通字符如果用双引号“”表示特殊字符本身的意思布尔值必须用引号 “” 括起来区分大小写
2.3 YAML支持的数据架构
对象: 键值对的字典
animal: pets数组: 一组按次序排列的列表
- cat
- dog
- goldfish布尔值
debug: true
debug: false#Yaml示例
languages: #序列的映射- Java- Golang- Python
websites: #映射的映射Baidu: www.baidu.comWangyi: www.163.comSouhu: www.souhu.com#或者
languages: [Java,Golong,Python]
websites: Baidu: www.baidu.comWangyi: www.163.comSouhu: www.souhu.com#Json格式
{languages: [Java,Golong,Python,],websites: [Baidu: www.baidu.com,Wangyi: www.163.com,Souhu: www.souhu.com,]
}
三、配置内部常用字段
字段描述build指定Dockerfile文件名要指定的Dockerfile文件需要在build标签的子级标签中用dockerfile标签指定dockerfile构建镜像上下文路径context可以是dockerfile路径或者是执行git 仓库的url地址image指定镜像已存在command执行命令会覆盖容器启动后默认执行的命令会覆盖Dockerfile的CMD指令container_name指定容器名称由于容器名称是唯一的如果指定自定义名称则无法scale指定容器数量deploy指定部署和运行服务相关配置只能在Swarm模式使用environment添加环境变量networks加入网络引用顶级networks下条目network-mode设置容器的网络模式ports暴露容器端口与-p 相同但是端口不能低于60volumes挂载一个宿主机目录或命令卷到容器命名卷要在顶级volumes 定义卷名称volumes_from从另一个服务或容器挂载卷可选参数 :ro 和 :rw仅版本‘2’支持hostnamehostnamehostname在容器内设置内核参数links连接到另一个容器- 服务名称[ : ]privileged用来给容器root权限注意是不安全的truerestart 重启策略定义是否重启容器1.no默认策略在容器退出时不重启容器。2.on-failure在容器非正常退出时退出状态非0才会重启容器。3.on-failure3在容器非正常退出时重启容器最多重启3次。4.always在容器退出时总是重启容器。5.unless-stopped在容器退出时总是重启容器但是不考虑在Docker守护进程启动时就已经停止了的容器。depends_on此标签用于解决容器的依赖启动先后问题。如启动应用容器需要先启动数据库容器php:depends_on:- apache- mysql
四、Docker-compose 常用命令 字段描述build重新构建服务ps列出容器up创建和启动容器exec在容器里面执行命令scale指定一个服务容器启动数量top显示正在运行的容器进程logs查看服务容器的输出down删除容器、网络、数据卷和镜像stop/start/restart停止/启动/重启服务 五、compose部署
环境部署所有主机安装docker环境(内容为docker基础)Docker-Compose 是 Docker 的独立产品因此需要安装 Docker 之后在单独安装 Docker Compose。
5.1 准备依赖文件
mkdir -p /opt/compose_nginx/nginx
cd /opt/compose_nginx/nginx/
rz
ls
docker-compose nginx-1.12.2.tar.gzchmod x docker-compose
cp docker-compose /usr/local/bin
docker-compose -v
docker-compose version 1.21.1, build 5a3f1a3#编写dockerfile
vim Dockerfileyum install -y tree
treeFROM centos:7
RUN yum -y update
RUN yum -y install pcre-devel zlib-devel gcc gcc-c make
RUN useradd -M -s /sbin/nologin nginx
ADD nginx-1.12.2.tar.gz /usr/local/src
WORKDIR /usr/local/src/nginx-1.12.2
RUN ./configure \
--prefix/usr/local/nginx \
--usernginx \
--groupnginx \
--with-http_stub_status_module
RUN make -j 4 make install
RUN ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
#ENV PATH /usr/local/nginx/sbin/:PATH
EXPOSE 80
EXPOSE 443
RUN echo daemon off; /usr/local/nginx/conf/nginx.conf
CMD [/usr/local/nginx/sbin/nginx]5.2 编写配置文件 docker-compose.yml vim /opt/compose_nginx/docker-compose.yml
version: 3 1 2 3
services:nginx:container_name: web1hostname: nginxbuild:context: ./nginxdockerfile: Dockerfileports:- 1216:80- 1217:443networks:lnmp:ipv4_address: 172.18.0.10volumes:- ./wwwroot:/usr/local/nginx/html
networks:lnmp:driver: bridgeipam:config:- subnet: 172.18.0.0/16cd /opt/compose_nginx/
docker-compose -f docker-compose.yml up -ddocker ps -a
cd /opt/compose_nginx/
docker-compose ps #必须在docker-compose.yml所在目录执行此命令 -f--file FILE 使用特定的 compose 模板文件默认为 docker-compose.yml-p--project-name NAME 指定项目名称默认使用目录名称-d 在后台运行 5.3 浏览器访问http://192.168.19.101:1216