记录 Docker 的学习过程 (单机编排)
容器的编排
什么是容器的编排?
就是让容器有序的启动并在启动的过程加以控制
docker-compose -f bainpaiwenjian.yul up 如果编排文件为默认名称docker-compose.yul则无需加参数 -f 以及 编排文件即
docker-compose up 因为它会自动寻找 docker-compose.yul文件,一般都会加-d 放在后台启动
下面在/opt 目录下创建以下4个文件
docker-compose.yml haproxy.cfg index1.html index2.html
[root@linux-node1 opt]# cat index1.html
web1
[root@linux-node1 opt]# cat index2.html
web2
[root@linux-node1 opt]# cat haproxy.cfg
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000ms
timeout client 50000ms
timeout server 50000ms
stats uri /status
listen stats
bind 0.0.0.0:1080
mode http
stats enable
stats hide-version
stats uri /stats
stats auth admin:admin
frontend balancer
bind 0.0.0.0:80
default_backend web_backends
backend web_backends
balance roundrobin
server server1 web1:80 check
server server2 web2:80 check
[root@linux-node1 opt]# cat docker-compose.yml
web1:
image: nginx #定义镜像
expose: #容器内部开放的端口
- 80
volumes:
- /opt/index1.html:/usr/share/nginx/html/index.html #挂载 将/opt/index1.html 挂载给给容器
web2:
image: nginx
expose:
- 80
volumes:
- /opt/index2.html:/usr/share/nginx/html/index.html
haproxy:
image: haproxy
volumes:
- /opt/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg
links: #依赖,haproxy必须依赖于web1还有web2,如果web1 web2起不来,haproxy也不会工作
- web1
- web2
ports:
- "80:80"
- "7777:1080" 将haproxy中设置的1080端口映射到宿主机的7777端口
现在就可以运行编排工具了,生产环境要加上-d参数,使其在后台运行
node1 # docker-compose up
Starting 14ee8e7d111e_opt_web2_1 ... done
Starting 2ee1b18634d1_opt_web1_1 ... done
Recreating opt_haproxy_1 ... done
Attaching to 2ee1b18634d1_opt_web1_1, 14ee8e7d111e_opt_web2_1, opt_haproxy_1
14ee8e7d111e_opt_web2_1 | WARNING: no logs are available with the 'fluentd' log driver
2ee1b18634d1_opt_web1_1 | WARNING: no logs are available with the 'fluentd' log driver
haproxy_1 | WARNING: no logs are available with the 'fluentd' log driver
此时就可以访问192.168.56.11了,可以发现不停的刷新 可以看到haproxy开始起作用了,web1和web2会交替的显示,
然后再打开http://192.168.56.11:7777/stats 可以看到haproxy的状态,另外可以打开kibana查看日志
node1# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
844626e0de4d haproxy "/docker-entrypoint.…" 12 minutes ago Up 12 minutes
0.0.0.0:80->80/tcp, 0.0.0.0:7777->1080/tcp opt_haproxy_1
14ee8e7d111e nginx "nginx -g 'daemon of…" 2 hours ago Up 12 minutes 80/tcp
14ee8e7d111e_opt_web2_1
2ee1b18634d1 nginx "nginx -g 'daemon of…" 2 hours ago Up 12 minutes 80/tcp
2ee1b18634d1_opt_web1_1
此时我们停掉一台nginx主机
node1 # docker stop 2ee1b18634d1_opt_web1_1
再次刷新浏览器发现,只有web2了,说明haproxy工作没有问题,再进入haproxy的管理页面,发现其中的一台nginx已经挂了,
然后我们再把刚才停掉的主机启动
node1 # docker start 2ee1b18634d1_opt_web1_1
2ee1b18634d1_opt_web1_1
此时刷新浏览器又正常了
https://www.cnblogs.com/52fhy/p/5991344.html
记录 Docker 的学习过程 (单机编排)的更多相关文章
- 记录 Docker 的学习过程 (网络篇)
打开2个会话,分别运行以下命令 # docker run -it -P --name nginx2 nginx #-P 端口随机映射 再打开一个会话查看 运行中的容器 # docker ps -aCO ...
- 记录 Docker 的学习过程 (自建私有仓库)
私有仓库的创建 node1#wget http://harbor.orientsoft.cn/harbor-v1.4.0/harbor-offline-installer-v1.4.0.tgz nod ...
- 记录 Docker 的学习过程 (dockerfile自动制作镜像)
自动制作镜像 通过编写dockerfile来自动创建镜像 #vi Dockerfile #编辑dockerfile文件,一定要以这个名字命名 #cat Dockerfile #导入哪个基础镜像FROM ...
- 记录 Docker 的学习过程 (数据挂载)
docker 存储篇 容器中的存储是分层的, 在容器中,如果我们要创建一个文件,会在文件的最上层(可写层)创建 容器中内置的文件,默认来讲是只读的,只有自己创建的文件才是可写状态 比如说 /etc/p ...
- 记录 Docker 的学习过程 (日志篇)
日志收集 elk 在node3上操作 docker pull sebp/elk:5610 node3# sysctl vm.max_map_count=262144 node3# docker run ...
- 记录 Docker 的学习过程 (网络篇之跨主机互通)
下面从node3上操作node3# docker run -d -p 8500:8500 --name consul progrium/consul -server -bootstrap node3# ...
- 记录 Docker 的学习过程 (安装基础篇)
docker 通过内核来实现 特点是效率高 1. centos7 三台(推荐2c 4g 最低 1c1g)2. 关闭防火墙 selinux3. 做好主机名解析,三台能互相ping通主机名host参考文件 ...
- 单机编排之Docker Compose
当在宿主机启动较多的容器时候,如果都是手动操作会觉得比较麻烦而且容器出错,这个时候推荐使用docker 单机编排工具docker compose,Docker Compose 是docker容器的一种 ...
- Docker入门篇(三)之docker-compose单机编排
1.docker-compose的简介 docker-compose作为dokcer的官方编排工具,它可以让用户通过编写一个简单的模板文件,快速地创建和管理基于docker容器的应用集群.实现对doc ...
随机推荐
- 手把手教你快速使用数据可视化BI软件创建全球经济贸易分析大屏
灯果数据可视化BI软件是新一代人工智能数据可视化大屏软件,内置丰富的大屏模板,可视化编辑操作,无需任何经验就可以创建属于你自己的大屏.大家可以在他们的官网下载软件. 本文以全球经济贸易分析大屏为例 ...
- pikachu-远程代码、命令执行漏洞(RCE)
一.RCE概述 1.1 什么是RCE? RCE漏洞,可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统. 1.2 远程系统命令执行 一般出现这种漏洞,是因为应用系统从设计上需要 ...
- cir from c# 托管堆和垃圾回收
1,托管堆基础 调用IL的newobj 为资源分配内存 初始化内存,设置其初始状态并使资源可用.类型的实列构造器负责设置初始化状态 访问类型的成员来使用资源 摧毁状态进行清理 释放内存//垃圾回收期负 ...
- python基础入门之二 —— 条件、循环语句
1.条件语句 if if…else… 多重if if嵌套 三目运算符 (化简的if else) if 条件: 条件成立执行代码1 条件成立执行代码2 if False: print('if判断 ...
- iOS 开发技术栈与进阶
最近有一些开发朋友问我应该怎样提升自己的能力,回想起来做了这么久 iOS 开发,我也有过那种“让我做一个功能实现个需求我会做,但接下来怎样提高我不知道.”的时期,这里尝试列一下 iOS 开发的相关技术 ...
- 在centos7.x环境中SQL Server附加数据库
第一步,准备好windows与Linux之间文件传递的工具,下载并安装 https://winscp.net/eng/download.php 第二步,把本地的数据库文件拷贝一份,放到别的文件夹中,因 ...
- 【57】目标检测之Anchor Boxes
Anchor Boxes 到目前为止,对象检测中存在的一个问题是每个格子只能检测出一个对象,如果你想让一个格子检测出多个对象,你可以这么做,就是使用anchor box这个概念. 我们还是先吃一颗栗子 ...
- 【Android】Retrofi的基础使用教程
文章参考学习自 阳光沙滩 ,是我在B站上发现的宝藏Up主,超级棒! 在前段时间我写了一个java web后台,想做一个安卓端的打卡社区,后来发现请求和解析过于麻烦,就耽搁了. 趁着空闲,研究了一下大部 ...
- 全面了解Java中的15种锁概念及机制!
在读很多并发文章中,会提及各种各样锁如公平锁,乐观锁等等,这篇文章介绍各种锁的分类.介绍的内容如下: 1.公平锁 / 非公平锁 2.可重入锁 / 不可重入锁 3.独享锁 / 共享锁 4.互斥锁 / 读 ...
- (办公)记事本_linux关机和重启命令
参考谷粒学院的linux视频教程:http://www.gulixueyuan.com/course/300/task/7091/show .sync Linux sync命令用于数据同步,sync命 ...