【docker&redis】用docker容器运行单机redis

一、实验环境


操作系统:CentOS7.5 Minimal

docker版本:18.06-ce

redis版本:6.0.6



二、安装docker


关闭selinux

# setenforce 0

# sed  -i  's/^SELINUX=.*/SELINUX=permissive/g'  /etc/selinux/config

下载docker二进制安装包

# yum  -y install   wget 

# wget   https://download.docker.com/linux/static/stable/x86_64/docker-18.06.0-ce.tgz

#  tar -zxf   docker-18.06.0-ce.tgz

#  ll   ./docker

# cp ./docker/docker*   /usr/bin

 创建docker服务的unit文件

# vim  /etc/systemd/system/docker.service

##############################################################

[Unit]

Description=Docker Application Container Engine

Documentation=https://docs.docker.com

After=network-online.target firewalld.service

Wants=network-online.target

[Service]

Type=notify

# the default is not to use systemd for cgroups because the delegate issues still

# exists and systemd currently does not support the cgroup feature set required

# for containers run by docker

ExecStart=/usr/bin/dockerd

ExecReload=/bin/kill -s HUP $MAINPID

# Having non-zero Limit*s causes performance problems due to accounting overhead

# in the kernel. We recommend using cgroups to do container-local accounting.

LimitNOFILE=infinity

LimitNPROC=infinity

LimitCORE=infinity

# Uncomment TasksMax if your systemd version supports it.

# Only systemd 226 and above support this version.

#TasksMax=infinity

TimeoutStartSec=0

# set delegate yes so that systemd does not reset the cgroups of docker containers

Delegate=yes

# kill only the docker process, not all processes in the cgroup

KillMode=process

# restart the docker process if it exits prematurely

Restart=on-failure

StartLimitBurst=3

StartLimitInterval=60s

[Install]

WantedBy=multi-user.target

##############################################

启动docker服务,设置开机自启

# systemctl daemon-reload

# systemctl start docker

# systemctl  status docker

# systemctl enable docker

# docker  info

# docker  version

设置镜像加速

#  curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io

#  systemctl restart docker


# cat /etc/docker/daemon.json

# python -m json.tool /etc/docker/daemon.json


三、 拉取redis镜像,启动容器


# docker pull redis

# docker run -it --rm redis  redis-cli  -v

# docker tag redis:latest redis:6.0.6

# docker run -it --rm redis cat /etc/passwd




# mkdir  /opt/redisdata

# chown -R 999:999  /opt/redisdata

# docker run  -d --name redis  -v /opt/redisdata:/data    -p 6379:6379    redis:6.0.6   redis-server  --appendonly yes

# docker exec -it redis redis-cli config set requirepass "Redis@123"



# docker logs redis


# docker stop redis

# docker rm redis 



四、将redis注册成系统服务


#  vim  /etc/systemd/system/redis.service

##################################################

[Unit]

Description=Redis Server

After=network-online.target docker.service

Requires=docker.service

[Service]

Type=simple

ExecStartPre=-/usr/bin/docker rm -f redis

ExecStart=/usr/bin/docker run \

  --name redis \

  -p 6379:6379 \

  -v /opt/redisdata:/data \

  redis:6.0.6 \

  redis-server --appendonly yes  --requirepass "Redis@123"

ExecStop=/usr/bin/docker stop redis

Restart=on-failure

StartLimitBurst=3

StartLimitInterval=60s

[Install]

WantedBy=multi-user.target

##################################################


# systemctl daemon-reload

# systemctl start redis

# systemctl status redis

# systemctl enable redis


# docker exec -it redis redis-cli -a "Redis@123"


五、参考


使用 docker 快速部署 Redis

https://www.jianshu.com/p/67ce319d8782


docker安装redis设置密码并连接

http://www.apgblogs.com/docker-redis


Redis配置数据持久化---APPEND ONLY MODE

https://blog.csdn.net/ljl890705/article/details/51039015

你可能感兴趣的:(【docker&redis】用docker容器运行单机redis)