前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >阅读准备-构建redis容器

阅读准备-构建redis容器

作者头像
程序员小王
发布2018-04-12 16:58:34
7060
发布2018-04-12 16:58:34
举报
文章被收录于专栏:架构说架构说

docker容器默认只提供一个服务,

我试图ssh进去 gdb git tcpdump strace valgrind 又安装redis 折腾很长时间 主要遇如下3个问题

  • 用容器内如何安装Supervisor ? RUN wget https://bootstrap.pypa.io/ez_setup.py -O - | python RUN easy_install supervisor
  • 编译失败造成空间不足—如何清理?
  • 语法 ADD src 是相对被构建的源目录的相对路径, dest 是container中的绝对路径 区别看 第一字符 如果是 ./ 就是相对

说明: Why you don’t need to run SSHd in your Docker containers

给出解决办法

How do I use it?

First, figure out the PID of the container you want to enter:

PID=$(docker inspect —format {{.State.Pid}})

Then enter the container:

nsenter —target $PID —mount —uts —ipc —net —pid

经历三个过程

过程 1 Centos Supervisor安装

要求 python环境 因为是一个 Python 程序

[root@localhost wang]# python -V Python 2.7.5

代码语言:javascript
复制
   yum install python-setuptools
   easy_install supervisor

验证:

成功安装后可以登陆python

import supervisor 查看是否能成功加载 Supervisor配置

代码语言:javascript
复制
echo_supervisord_conf > /etc/supervisord.conf

supervisor自带有Web Server, 可以通过页面来管理进程

[inet_http_server] ; inet (TCP) server disabled by default port=127.0.0.1:9001 ; (ip_address:port specifier, *:port for all iface) ;username=user ; (default is no username (open server)) ;password=123 ; (default is no password (open server))

启动supervisor:

supervisord -c /etc/supervisord.conf

[root@localhost wang]# ps -ef |grep supervisord root 24673 1 0 07:19 ? 00:00:00 /usr/bin/python /usr/bin/supervisord

supervisord 是后台管理服务器, 用来依据配置文件的策略管理后台守护进程; supervisorctl 用于管理员向后台管理程序发送 启动/重启/停止 等指令

过程2 docker supervisor启动多服务

创建Dockerfile:

代码语言:javascript
复制
#supervisor来启动多个服务 
RUN yum -y install wget
RUN  wget https://bootstrap.pypa.io/ez_setup.py -O - | python
RUN  easy_install supervisor
RUN mkdir -p /var/log/supervisor  
ADD  ./centos/reids/supervisord.conf /etc/supervisord.conf
RUN yum clean all

创建supervisord.conf

代码语言:javascript
复制
[supervisord]
nodaemon=true

[program:sshd]
command=/usr/sbin/sshd -D

[program:redis]
command=redis-server /etc/redis/redis.conf

build镜像

代码语言:javascript
复制
#!/bin/bash
docker build -f /home/wang/scripts/docker/Dockerfile -t myredis .

过程三 直接在第三方平台编译也可以。

代码地址: https://git.oschina.net/wang_cyi/mydocker.git

镜像地址: https://hub.alauda.cn/repos/troyadmin/myredis

-----------------------------------end-----------------------------

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-12-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Offer多多 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 过程 1 Centos Supervisor安装
    • 要求 python环境 因为是一个 Python 程序
      • 验证:
        • 启动supervisor:
        • 过程2 docker supervisor启动多服务
          • 创建Dockerfile:
            • build镜像
            • 过程三 直接在第三方平台编译也可以。
            相关产品与服务
            云数据库 Redis
            腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档