安装DOCKER
yum install docker
#启动docker
systemctl start docker.service
#设置为开机启动
systemctl enable docker.service
创建一个docker镜像
推荐一个不错的基于ubuntu的镜像:phusion镜像,增加了许多特性,可以访问官网和github
mkdir redis
vim redis/Dockerfile
#内容如下
FROM phusion/baseimage:0.9.19
#默认关闭了ssh
RUN rm -f /etc/service/sshd/down
#重新创建host keys
RUN /etc/my_init.d/00_regen_ssh_host_keys.sh
#baseimage-docker's init system
CMD ["/sbin/my_init"]
#clean apt
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
构建redis镜像
docker build -t="redis/base" redis
docker images
#如果构建之后想删除
docker rmi $IMAG_ID
使用insecure的key的方式启动镜像
docker run -d --name redis-server redis/base /sbin/my_init --enable-insecure-key
#查看启动的docker
docker ps -a
#查看启动的docker的IP
docker inspect -f "{{ .NetworkSettings.IPAddress }}" <ID>
下载inscure_key文件并登录到docker中
curl -o insecure_key -fSL https://github.com/phusion/baseimage-docker/raw/master/image/services/sshd/keys/insecure_key
chmod 600 insecure_key
ssh -i insecure_key root@<IP address>
如果想永久的使用inscure_key,修改Dockfile:
RUN /usr/sbin/enable_insecure_key
安装docker-ssh工具
每次查询ip然后再登陆很麻烦,phusion提供了docker-ssh 自动查询ip并登录
curl --fail -L -O https://github.com/phusion/baseimage-docker/archive/master.tar.gz && \
tar xzf master.tar.gz && \
sudo ./baseimage-docker-master/install-tools.sh
docker-ssh YOUR-CONTAINER-ID
也可以通过ID直接进入docker的shell
docker exec -i -t <ID> /bin/bash
开始redis的环境准备
登陆到docker容器后,安装一下基本工具
apt-get update
apt-get upgrade
apt-get install wget gcc make
安装redis
wget http://download.redis.io/releases/redis-3.2.3.tar.gz
tar zxf redis-3.2.3.tar.gz
cd redis-3.2.3
make install
cp redis.conf /usr/local/etc/redis.conf
vim /usr/local/etc/redis.conf
#daemonize 改为yes
#启动
redis-server /usr/local/etc/redis.conf
让redis在docker启动的时候自动启动
cd /etc/service
mkdir redis
cd redis
touch run
#编写redis启动脚本
run文件内容如下
#!/bin/sh
set -e
exec /usr/local/bin/redis-server /usr/local/etc/redis.conf
添加启动权限:chmod +x run
保存着镜像为redis模板
退出docker镜像,使用docker commit 创建一个新的镜像
docker commit redis-server redis-node
docker images
#删除redis-server
docker stop redis-sever
docker rm redis-server
#删除images
docker rmi redis-server
使用docker的端口映射创建多个redis服务
docker run -d --name redis-node1 -p 7001:6379 redis-node /sbin/my_init
docker run -d --name redis-node2 -p 7002:6379 redis-node /sbin/my_init
docker run -d --name redis-node3 -p 7003:6379 redis-node /sbin/my_init
ref:
http://phusion.github.io/baseimage-docker/
https://github.com/phusion/baseimage-docker
http://dockone.io/article/180










网友评论