从docker入门到使用docker搭建redis哨兵集群(待整理)

安装docker

#查看版本
uname -r
#Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。
#Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。

rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

yum -y install docker-io
service docker start

#yum下载的docker版本可能比较低
#方法1:
vim /usr/bin/yum-config-manager  #确定使用的yum是py2版本

yum remove docker-io
参考: https://docs.docker.com/engine/installation/linux/docker-ce/centos/#install-docker-ce-1

systemctl start docker

#方法2
#下载最新的
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-17.12.0.ce-1.el7.centos.x86_64.rpm

升级内核步骤

一、安装elrepo的yum源--http://elrepo.org/tiki/tiki-index.php
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
#如果出现问题:curl: (60) SSL certificate problem: unable to get local issuer certificate
#wget http://mirror.centos.org/centos/6/os/x86_64/Packages/ca-certificates-2016.2.10-65.4.el6.noarch.rpm
#rpm2cpio ca-certificates-2016.2.10-65.4.el6.noarch.rpm | cpio -idmv
#cp -pi ./etc/pki/tls/certs/ca-bundle.* /etc/pki/tls/certs/
#yum reinstall ca-certificates
#yum reinstall openssl
#如果还是不行,直接不用rpm安装
#wget --no-check-certificate https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
#rpm --import RPM-GPG-KEY-elrepo.org

rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm


二、升级内核
#在yum的elrepo源中有ml和lt两种内核,其中ml(mainline)为最新版本的内核,lt为长期支持的内核。
#如果要安装ml内核,使用如下命令:
yum --enablerepo=elrepo-kernel -y install kernel-ml

#如果要安装lt内核,使用如下命令:
yum --enablerepo=elrepo-kernel -y install kernel-lt

三、修改grub.conf文件
vim /etc/grub.conf

default=0

docker相关操作

docker官方安装

docker search centos

#使用docker运行centos后输出,会自杀,因为docker认为没什么事情可以做了
docker pull centos /bin/echo "Hello world"
#docker build -t csphere/centos:7.1 .

#后台运行docker
docker run -dit centos

#查看容器列表
docker ps
docker ps -a

#进入容器
docker attach 44fc0f0582d9   # 使用了exit命令,容器就会退出后台运行
docker exec -it 44fc0f0582d9 /bin/sh #不会退出

#在宿主机器查看docker的cpu 内存使用状态
docker stats 44fc0f0582d9

构建一个容器

参考

vim Dockerfile
# 将官方 Python 运行时用作父镜像
FROM python:2.7-slim

# 将工作目录设置为 /app。指定RUN、CMD与ENTRYPOINT命令的工作目录
WORKDIR /app

# 将当前目录内容复制到位于 /app 中的容器中。复制文件指令。它有两个参数<source>和<destination>。destination是容器内的路径。source可以是URL或者是启动配置上下文中的一个文件
ADD . /app

# 安装 requirements.txt 中指定的任何所需软件包。在shell或者exec的环境下执行的命令
RUN pip install -r requirements.txt

# 使端口 80 可供此容器外的环境使用
EXPOSE 80

# 定义环境变量
ENV NAME World

# 在容器启动时运行 app.py。提供了容器默认的执行命令。 Dockerfile只允许使用一次CMD指令。 使用多个CMD会抵消之前所有的指令,只有最后一个指令生效。
CMD ["python", "app.py"]
vim requirements.txt
Flask
Redis
app.py
from flask import Flask
from redis import Redis, RedisError
import os
import socket

# Connect to Redis
redis = Redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2)

app = Flask(__name__)

@app.route("/")
def hello():
    try:
        visits = redis.incr("counter")
    except RedisError:
        visits = "<i>cannot connect to Redis, counter disabled</i>"

    html = "<h3>Hello {name}!</h3>" \
           "<b>Hostname:</b> {hostname}<br/>" \
           "<b>Visits:</b> {visits}"
    return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname(), visits=visits)

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=80)
docker build -t friendlyhello .

#查看构建的镜像
docker images

#运行构建的镜像(将本机的4000映射到docker的80端口)
docker run -p
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值