Docker技术剖析--Supervisor管理
来源:互联网 发布:mac office 生成目录 编辑:程序博客网 时间:2024/05/16 02:11
一、使用supervisor来管理进程
docker容器在启动的时候开启单个进程,比如,一个ssh或者apache的daemon服务,但我们经常需要在一个机器上开启多个服务,这个有很多办法,最简单的就是把多个启动的命令放在一个启动脚本里面,启动的时候直接启动这个脚本。
另外就是安装进程的管理工具。
supervisor是一个进程控制系统,它是一个C/S系统(注意:其提供web接口给用户查询和控制)它允许用户去监控和控制在类unix系统的进程 这次使用ssh和apache服务。
一、配置
前提:需要安装docker,可以参考我的这篇文章:http://blog.csdn.net/qq_39591494/article/details/77712618
首先创建一个dockerfile,内容如下:
创建一个dockerfile目录
dockerfile的文件内容如下:
#images of apache
FROM docker.io/centos:latest
#install supervisor
RUN yum -y install python-setuptools
RUN /usr/bin/easy_install supervisor
#install ssh apache
RUN yum install -y openssh-server httpd sudo
RUN useradd admin
RUN echo "admin:admin" | chpasswd
RUN echo "admin ALL=(ALL) ALL" >> /etc/sudoers
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
RUN ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
RUN mkdir -p /var/run/sshd
RUN mkdir -p /var/log/supervisor
RUN sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshd
RUN sed -ri 's/#ServerName www.example.com:80/ServerName www.benet.com/g' /etc/httpd/conf/httpd.conf
COPY supervisord.conf /etc/supervisor/supervisord.conf
EXPOSE 22 80
CMD ["/usr/bin/supervisord"]
2)创建image
创建的过程如下:
创建完成之后我们查看镜像
启动我们的supervisor容器
我们打开client访问测试。
二、docker compose项目
compose项目简介
compose项目来源于之前的fig项目,使用python代码编写的。compose项目主要用于编排部署基于docker的应用。本身docker/swarm配合度很高。
docker compose是docker编排服务的一部分,可以让用户在其他平台快速安装docker,swarm可以让docker容器在集群中高效运转,而compose可以让用户在集群中部署分布式应用。docker compose属于一个应用层的服务,用户可以定义哪个容器组运行哪个应用。
dockerfile可以让用户管理一个单独的应用容器,而compose则允许用户在一个模块中定义一组相关联的应用容器,例如一个调度器。两个web容器加上后端数据库等。
在安装compose之前,先安装pip
注:pip类似于redhat里面的yum,安装python包很方便
[root@localhost ~]# wget https://bootstrap.pypa.io/get-pip.py [root@localhost ~]# python get-pip.py
然后在安装compose
[root@localhost ~]# pip install docker-compose
[root@localhost ~]# ln -s /usr/bin/docker-compose /usr/local/bin/
安装成功后,可以查看docker-compose的版本和命令的用法
docker-compose -v
docker-compose -h
docker-compose命令说明
大多数compose命令都是允许于一个或者多个服务的,如果服务没有指定,该命令将会应用到所有服务
build
创建或者在建服务
help
显示命令的帮助和使用信息
kill
通过发送sigkill的信号强制停止运行的容器,这个信号可以选择性的通过
logs
显示服务的日志输出
port
为端口绑定输出公共信息
ps
显示容器
pull拉取服务镜像
rm
删除停止的容器
run
在服务上运行一个一次性命令
scale
设置一个服务启动的容器数量,数量可以用service=num指定
start
启动已经存在的容器作为一个服务
stop
停止允许的容器而不是删除它们
up
为一个服务构建,创建,启动,附加到容器 (这只是一部分后面还会详细说明)
下面我们创建一个web项目:一个haproxy,挂载三个web容器
docker-haproxy目录,作为项目工作目录,并在其中有两个子目录haproxy和web
[root@localhost ~]# mkdir -p /root/docker-haproxy/{haproxy,web}
在/root/docker-haproxy/目录下创建docker-compose.yml文件
在/root/docker-haproxy/haproxy目录下创建haproxy的主配置文件haproxy.cfg
在/root/docker-haproxy/web目录下存放web站点的网页文件
docker-compose.yml内容如下:
主配置文件haproxy.cfg内容如下:
存放web站点的网页文件内容如下:
配置完成后运行compose项目:
在docker-haproxy目录下执行docker-compose up -d 来启动应用
接下来我们拿客户机访问本机IP地址http://192.168.35.136/
访问本机IP地址http://192.168.35.136:70
希望对您有所帮助,再见
- Docker技术剖析--Supervisor管理
- Docker技术剖析--docker image管理
- Docker技术剖析--Swarm集群
- Docker技术剖析--docker数据卷
- Docker容器内多进程管理(一)-Supervisor
- Docker容器内多进程管理(一)-Supervisor
- Docker容器内多进程管理(一)-Supervisor
- Docker容器内多进程管理(一)-Supervisor
- Docker容器内多进程管理(一)-Supervisor
- Docker容器内多进程管理(一)-Supervisor
- supervisor管理
- Using Supervisor with Docker
- Using Supervisor with Docker
- docker--supervisor、compose.pdf
- Docker技术剖析--dockerfile构建容器
- Docker技术剖析--dcoker配置Vlan划分
- Docker技术剖析--docker的详细简介及安装
- Docker技术剖析Docker网络配置(一)
- Java语法基础练习题(1)改后
- 如何在Linux下安装Memcached(1.4.21)
- mac查看、修改文件权限
- C++嵌入DLL到资源运行释放的问题
- hsv和余弦相似度的局限
- Docker技术剖析--Supervisor管理
- ar、ranlib、nm命令详解
- slide
- Lintcode最大子数组
- (王晓东算法设计与分析)答案及解析
- 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 E. Maximum Flow
- 存储器的使用
- <context-param>和<init-param>区别 http://blog.csdn.net/mydwr/article/details/8047515
- Calico 的网络结构是什么?- 每天5分钟玩转 Docker 容器技术(68)