云服务器免费试用

debian配置redis(Debian配置dhcp)

服务器知识 0 1183

本文目录:

  • 1、云主机文件系统readonly处理案例
  • 2、方德系统部署
  • 3、群晖docker怎么运行debian
  • 4、linux怎么启动docker
  • 5、如何安装和配置 HUBOT ?
  • 6、一台windiws可以跑不同版本的redis吗

云主机文件系统readonly处理案例

本文由作者朱益军授权网易云社区发布。

背景

   维护巡检云主机时,发现有一台运行redis的云主机状态显示维护中,登录该实例查看,系统盘变成readonly。本文简单分析该问题出现原因,并为运维人员提供常见处理方法及建议。

故障分析

    查看云主机dmesg信息发现,系统运行过程中python进程发生segfault,随后vda(云主机配置virtio-blk,故盘符显示为vda)系统盘I/O error。

  基本可确定是业务把系统盘写坏了。通常发生该问题的场景有二:

  一、云主机和宿主机IO繁忙,云主机的IO请求得不到及时的响应,从而产生磁盘IO错误,为了保护磁盘数据会remount分区为只读;

  二、云主机被强制关机,导致磁盘出现文件系统错误故障。

故障处理

    通常的解决方法是重启系统以root用户进入单用户模式, 运行fsck.ext3 –y /dev/vda(如果是ext4使用fsck.ext4修复),/dev/vda是系统/根分区。修复完reboot进入系统。以debian系统为例:

  1、重启系统,grub菜单会出现正常启动和修复模式( recovery mode )启动两个菜单项,选择修复模式启动;

2、进入修复模式,运行fsck工具修复;

  3、重启进入正常模式启动。

  

  注意:

  1、运维人员在重启云主机之前尽量先收集一些关键的日志,如/var/log下面的一些日志、dmesg等,有条件也要收集宿主机的日志;

  2、fsck是Linux内核自带工具,它不仅可以对文件系统进行扫描,还能修正文件系统的一些问题。 fsck扫描文件系统时一定要在单用户模式、修复模式或把设备umount后进行。建议在单用户模式下运行。如果扫描正常运行中的系统,会造成系统文件损坏,需要root权限执行。

建议与思考

  1、当前开发要定位问题,需要申请宿主机权限等流程,无法及时上去定位;

  2、当前云主机的日志收集功能尚不完善,呈现的日志比较杂、乱、实用性不高,需要适当进行修改调整。另外,运维人员也不知道要收集哪些日志可支撑开发定位;

  开发正在考虑开发一个一键式日志收集工具,集成到版本中,定期采集系统数据并归档,或者在发生故障时,由运维先收集分析,再交给开发定位,这样效率会高一些。

更多网易技术、产品、运营经验分享请访问 网易云社区 。

相关文章:

【推荐】  网易云易盾发布多国家多语种内容安全服务,助力中国互联网出海

【推荐】  Spring-Boot自定义Starter实践

【推荐】  一文带你了解 Raft 一致性协议的关键点

方德系统部署

1、jdk

2、mysql

3、redis

4、nginx

在java官网上寻找debian版本的jdk jdk-18_linux-x64_bin.deb 通过直接在桌面双击实现了安装

安装

开通权限

查看3306端口的状态:

上图表示3306端口没有开启

开启步骤:

编辑配置文件

将 bind-address 前加 # 即可

启动

开通外网访问

尝试使用外网访问

开始安装

安装成功可以访问了

群晖docker怎么运行debian

将Docker安装到CentOS或Fedora上

要将Docker安装到CentOS上,首先启用EPEL软件库,然后使用yum命令:

$ sudo yum install docker-io

$ sudo service docker start

$ sudo chkconfig docker on

要将Docker安装到Fedora上,使用下面这些命令:

$ sudo yum install docker-io

$ sudo systemctl start docker.service

$ sudo systemctl enable docker.service

将Docker安装到CentOS或Fedora上后,你需要将自己添加到docker群组,那样才能以非root用户的身份来运行Docker。为此,使用这个命令:

$ sudo usermod -a -G docker $USER

退出,重新登录,以激活群组变更。

至此,你应该能够以非特权用户的身份来运行docker命令了。

Docker的基本用法

你想启动一个新的Docker容器,就需要确定为容器使用哪个Docker映像。你可以搜索官方的Docker映像索引(),上面列出了公开可用的Docker映像。Docker索引包括:Docker团队管理的Linux基本映像(比如Ubuntu、Debian、Fedora和 CentOS),以及用户贡献的自定义映像(比如MySQL、Redis和WordPress)。

比如说,想在交互模式开启动一个Ubuntu容器,就要运行下面这个命令。容器一启动,最后的变量“/bin/bash”就在容器里面执行。

$ docker run -i -t ubuntu /bin/bash

你头一次运行上面这个命令时,它会通过网络下载可用的一个或多个Ubuntu docker映像,然后使用该映像,启动Docker容器。Ubuntu容器会立马启动,你会看到容器里面的控制台提示符。你可以访问容器沙箱里面的功能完备的Ubuntu操作系统。

如果你在提示符处键入“exit”,就会退出容器,容器会被停止。

想列出所有的容器(包括已停止的容器),运行这个命令:

$ docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

6a08a0b2bb4c ubuntu:14.04 /bin/bash About a minute ago Exit 0 cocky_ritchie

想在守护进程模式下重新启动某个已停止的容器:

$ docker start [container-id]

想移除某个已停止的容器:

$ docker rm [container-id]

想连接到后台运行的容器,以便查看容器或与之交互:

$ docker attach [container-id]

你可以随意定制某个运行中的容器(比如安装新软件)。如果你想把变更内容保存在当前容器中,先要在提示符处键入“exit”,退出容器的交互模式。然后使用这个命令,将已变更的映像保存为不同的映像:

$ docker commit [container-id] [new-image-name]

想获得你容器的容器ID,可以使用之前描述的“docker ps –a”命令。

一旦你已构建了像这样的新映像,就可以借助该映像启动一个新的容器了。

你还可以下载任何公开的容器映像(比如ubuntu,bowery/mysql),将它们保存到本地软件库中,如下所示。

$ docker pull [image name]

想查看所有本地下载/保存的容器映像:

$ docker images

你可以选择从哪个特定的映像来启动容器:

$ docker run -i -t [image-id] /bin/bash

想从本地软件库移除某个容器映像:

$ docker rmi [image-id]

将Docker安装到CentOS或Fedora上

要将Docker安装到CentOS上,首先启用EPEL软件库,然后使用yum命令:

$ sudo yum install docker-io

$ sudo service docker start

$ sudo chkconfig docker on

要将Docker安装到Fedora上,使用下面这些命令:

$ sudo yum install docker-io

$ sudo systemctl start docker.service

$ sudo systemctl enable docker.service

将Docker安装到CentOS或Fedora上后,你需要将自己添加到docker群组,那样才能以非root用户的身份来运行Docker。为此,使用这个命令:

$ sudo usermod -a -G docker $USER

退出,重新登录,以激活群组变更。

至此,你应该能够以非特权用户的身份来运行docker命令了。

Docker的基本用法

你想启动一个新的Docker容器,就需要确定为容器使用哪个Docker映像。你可以搜索官方的Docker映像索引(),上面列出了公开可用的Docker映像。Docker索引包括:Docker团队管理的Linux基本映像(比如Ubuntu、Debian、Fedora和 CentOS),以及用户贡献的自定义映像(比如MySQL、Redis和WordPress)。

比如说,想在交互模式开启动一个Ubuntu容器,就要运行下面这个命令。容器一启动,最后的变量“/bin/bash”就在容器里面执行。

$ docker run -i -t ubuntu /bin/bash

你头一次运行上面这个命令时,它会通过网络下载可用的一个或多个Ubuntu docker映像,然后使用该映像,启动Docker容器。Ubuntu容器会立马启动,你会看到容器里面的控制台提示符。你可以访问容器沙箱里面的功能完备的Ubuntu操作系统。

如果你在提示符处键入“exit”,就会退出容器,容器会被停止。

想列出所有的容器(包括已停止的容器),运行这个命令:

$ docker ps -a

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

6a08a0b2bb4c ubuntu:14.04 /bin/bash About a minute ago Exit 0 cocky_ritchie

想在守护进程模式下重新启动某个已停止的容器:

$ docker start [container-id]

想移除某个已停止的容器:

$ docker rm [container-id]

想连接到后台运行的容器,以便查看容器或与之交互:

$ docker attach [container-id]

你可以随意定制某个运行中的容器(比如安装新软件)。如果你想把变更内容保存在当前容器中,先要在提示符处键入“exit”,退出容器的交互模式。然后使用这个命令,将已变更的映像保存为不同的映像:

$ docker commit [container-id] [new-image-name]

想获得你容器的容器ID,可以使用之前描述的“docker ps –a”命令。

一旦你已构建了像这样的新映像,就可以借助该映像启动一个新的容器了。

你还可以下载任何公开的容器映像(比如ubuntu,bowery/mysql),将它们保存到本地软件库中,如下所示。

$ docker pull [image name]

想查看所有本地下载/保存的容器映像:

$ docker images

你可以选择从哪个特定的映像来启动容器:

$ docker run -i -t [image-id] /bin/bash

想从本地软件库移除某个容器映像:

$ docker rmi [image-id]

linux怎么启动docker

2.1 在测试机启动容器,安装ssh

docker run -i -t ubuntu /bin/bash #此方式运行的容器,退出后容器就会关闭。

apt-get install openssh-server #安装ssh

#需要修改/etc/sshd/sshd_config文件中内容

PermitRootLogin yes

UsePAM no

2.2 启动ssh,容器以后台方式运行

docker run -d -p 50001:22 容器id /usr/sbin/sshd-D

#容器id可通过 docker ps-a查看,最上面的为最新的。

2.3 通过ssh连接到容器安装软件

ssh root@127.0.0.1-p 50001

#连上后想装什么就装什么,可使用exit退出容器,但后台还会运行。

2.4 服务安装完成后,停止容器。

docker stop 容器id #停止运行的容器

2.5 把容器提交生成最新的镜像

docker commit 容器id debian02 #把这个容器提交生成新的debian02镜像(该镜像是原始镜像与容器的整合)

2.6 打包镜像

docker save debian02 /root/debian02.tar #debian02镜像打包

2.7 在另外的机器上导入镜像

docker load debian02.tar #导入镜像

docker images #查看存在的镜像

2.8 启动容器

docker run -h="redis-test" --name redis-test -d -p 51000:22 -p51001:3306 -p 51003:6379 -p 51004:6381 -p 51005:80 -p 51006:8000 -p 51007:8888 debian02 /etc/rc.local

#此处是我测试机器启动命令,指定主机名与端口映射。

#启动后,后面又装了程序,开机自启动命令可放在/etc/rc.local文件中。

docker容器迁移简单方便,可以任意的拷贝部署,以后再也不怕新部署环境了,一堆依赖装的想死有木有。

3、关于docker容器的端口映射

由于docker容器的IP地址每次启动都会变,所以不适用于手动添加端口映射(难道每次重启都来查看容器的IP么?),所以需要每次启动容器时由docker程序自动添加NAT规则,前期尽可能的把需要映射的端口在创建容器时配置好,如下:docker run -h="activemq" --name activemq -d -p 51000:22 -p 51001:3306-p 51003:6379 -p 51004:6381 -p 51005:80-p 51006:8000 -p 51007:8888 debian/base/etc/rc.local

#此处我把mysql,redis,nginx,ssh都进行了映射。

后续对于docker容器的管理,记住容器的名称,如上述名称是activemq,则使用docker stop,start来控制容器进程。docker stop activemq

docker start activemq

当然,也可以不让docker每次启动容器修改容器的IP地址,参考如下:

docker网络配置:

4、关于docker容器的多程序开机自动运行

docker容器每次启动时,开机自启动的命令都要在启动容器前指定。如 docker run -I -t debian /bin/bash命令,只会运行/bin/bash程序,其它的程序都不会运行,对于要跑多个程序的容器特别纠结。

多程序开机自动运行方法:

可把前面所说的启动命令换成dockerrun -I -t debian /etc/rc.local,在容器中把所有需要开机自的启动命令放在/etc/rc.local中,就可以达到多程序开机自启动了。

后台运行则是:docker run -d -p 50001:22 debian /etc/rc.local。注意:run命令是创建一个新的容器,如果要启动一个曾经运行过的容器,则用命令docker ps -a中找对应的容器ID,然后使用docker start 容器ID即可。

如何安装和配置 HUBOT ?

Mac 下,我用的是homebrew 作为包管理系统

1)安装node.js

brew install node.js

2)安装npm — node package manager

curl | sh

3)进入hubot ,用npm 安装相关依赖

npm install

4)shell 测试一下

export PATH=”node_modules/.bin:$PATH”

./bin/hubot

在这个命令行提示符下

Hubot

输入 hubot pug me 看看效果,如果返回一个包含图片url 的json 就成功了

我的Linux 是Debian

1)安装相关依赖包

# apt-get install build-essential libssl-dev git-core redis-server libexpat1-dev

2)安装node.js

# wget

# tar xf node-v0.6.9.tar.gz -C /usr/local/src cd /usr/local/src/node-v0.6.9

# ./configure make make install

3)进入hubot ,用npm 安装相关依赖

npm install

4)编写用于Campfire 的启动脚本

# vim run

--------------------------

#!/bin/bash

##

## Wrapper for Hubot startup

##

HUBOT="/opt/hubot/bin/hubot"

NAME="marvin"

ADAPTER="campfire"

HUBOT_CAMPFIRE_TOKEN="marvin's api token" HUBOT_CAMPFIRE_ACCOUNT="subdomain"

HUBOT_CAMPFIRE_ROOMS="roomid1, roomid2"

OPTS="--name ${NAME} --adapter ${ADAPTER}"

export HUBOT_CAMPFIRE_TOKEN

export HUBOT_CAMPFIRE_ACCOUNT

export HUBOT_CAMPFIRE_ROOMS

until ${HUBOT} ${OPTS};

do echo "Hubot crashed with exit code $?. Restarting." 2

sleep 5

done

---------------------------

这里说明一下,申请一个Campfire 账号给hubot 使用,需要它的API token ,和它需要进入的room 的id。

NAME 是机器人的名字

HUBOT_CAMPFIRE_TOKEN 是申请的那个账号的api token

HUBOT_CAMPFIRE_ACCOUNT 这里是你的 的xxx ,而不是hubot 的账号

HUBOT_CAMPFIRE_ROOM 聊天室的id ,用逗号分隔

chmod +x run

一台windiws可以跑不同版本的redis吗

一台windiws不可以跑不同版本的redis。

扩展知识;

Redis介绍

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。

如何在window上让redis跑起来:

在Windows上,安装Ubuntu上的Bash,这是首选方法。

从开始搜索打开或关闭Windows功能(类型turn)

选择适用于Linux的Windows子系统(测试版)

一旦安装,可以通过从Windows命令提示符键入 bash 在Ubuntu上运行bash 。要安装最新版本的Redis,我们需要使用一个存储库来维护Ubuntu和Debian服务器的最新软件包

启动redis

【debian配置redis】的内容来源于互联网,如引用不当,请联系我们修改。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942@qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: debian配置redis(Debian配置dhcp)
本文地址: https://solustack.com/25434.html

相关推荐:

网友留言:

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。