如何在docker中安装redis

如何在docker中安装redis,第1张

创建一个redis docker容器

首先,我们先为redis创建一个Dockerfile

FROMubuntu:12.10

RUN apt-get update

RUN apt-get -y install redis-server

EXPOSE 6379

ENTRYPOINT ["/usr/bin/redis-server"]

现在你需要通过Dockerfile创建一个镜像,将替换成你自己的名字。

sudo docker build -t /redis .

运行服务

使用我们刚才创建的redis镜像

使用 -d 运行这个服务分离模式,让容器在后台运行。

重要的是我们没有开放容器端口,相反,我们将使用一个容器来连接redis容器数据库

sudo docker run -name redis -d /redis

创建你的web应用容器

现在我们可以创建我们的应用程序容器,我们使用-link参数来创建一个连接redis容器,我们使用别名db,这将会在redis容器和redis实例容器中创建一个安全的通信隧道

sudo docker run -link redis:db -i -t ubuntu:12.10 /bin/bash

进入我们刚才创建的容器,我们需要安装redis的redis-cli的二进制包来测试连接

apt-get update

apt-get -y install redis-server

service redis-server stop

现在我们可以测试连接,首先我么要先查看下web应用程序容器的环境变量,我们可以用我们的ip和端口来连接redis容器

env

. . .

DB_NAME=/violet_wolf/db

DB_PORT_6379_TCP_PORT=6379

DB_PORT=tcp://172.17.0.33:6379

DB_PORT_6379_TCP=tcp://172.17.0.33:6379

DB_PORT_6379_TCP_ADDR=172.17.0.33

DB_PORT_6379_TCP_PROTO=tcp

我们可以看到我们有一个DB为前缀的环境变量列表,DB来自指定别名连接我们的现在的容器,让我们使用DB_PORT_6379_TCP_ADDR变量连接到Redis容器。

redis-cli -h $DB_PORT_6379_TCP_ADDR

redis 172.17.0.33:6379>

redis 172.17.0.33:6379>set docker awesome

OK

redis 172.17.0.33:6379>get docker

"awesome"

redis 172.17.0.33:6379>exit

我们可以很容易的使用这个或者其他环境变量在我们的web应用程序容器上连接到redis容器

人生有涯,学海无涯

最近接到一个项目,由于项目的独特性需要自己搭建一些环境,刚好之前学了一些 Docker(这里如果大家不熟悉 Docker 可以查看公号前面松哥写的 Docker 的系列文章),所以就决定采用 Docker 搭建,毕竟搭建方便、简单、快速。

大家在公网服务器安装 Redis 的时候 一定要设置密码,一定要设置密码,一定要设置密码

如果不设置密码很容易被黑客利用 Redis 的漏洞进行比特币的勒索。如果不巧遇到了那都是血的教训!切记不要抱有侥幸心理,或者简单的以为换个端口就可以了,端口的数量是有限制了,黑客完全可以遍历一下就破解了。最好两个都设置,既改端口也加密码,双保险,当然密码也不要简单到随便一个字典库就能破解的那种,尽量复杂点。

与 Redis 安装方式类似,不过这里获取的是指定版本的 MySQL 。

首先提到代码管理平台,大家首先想到的肯定是 Github 以及 Gitlab,这两种大家平时应该用到的比较多,开源软件用的大部分是 Github,公司内部大部分使用的是 Gitlab。Gogs 也是一种代码管理平台,相比 Gitlab 来说相对轻量级。

我这里为什么要使用 Gogs 而不使用 Gitlab 呢? 主要是个人服务器配置跟不上啊!!!

尝试了安装 Gitlab,安装后服务器完全跑不起来了,本来个人服务器性能就不是很好,上面还跑了几个程序,安装完 Gitlab 后连博客网站都打不开,果断放弃。官方推荐的安装 Gitlab 硬件配置是 4 核 8G,相对来说 Gogs 就轻量很多,安装后基本对服务器没什么影响,而且 Docker 安装十分方便。

注意修改端口号:

如果在上一步点击安装后一切正常那边跳过这一步,如果出现 MySQL error: The maximum column size is 767 bytes,那么很高兴你遇到一个坑,不过别怕,我们可以解决它只需要对 mysql 进行参数的设置就好了。

解决方案:

1.在线安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

在线安装方式二

curl -sSL https://get.daocloud.io/docker | sh

3.查看Docker

yum list docker-ce --showduplicates | sort -r

4.查看Docker版本

docker version

5.启动Docker

systemctl start docker

6.测试Docker是否启动成功

(1).拉取HelloWorld的镜像

docker pull hello-world

(2).运行hello-world镜像

docker run hello-world

看到下面的图就证明安装成功了

docker search redis

2.取最新版的 Redis 镜像

docker pull redis:latest

3.查看本地镜像

docker images

4.运行容器(这是只能本地访问,但是我们需要进行外网访问)

docker run -itd --name redis-test -p 6379:6379 redis

-p 6379:6379:映射容器服务的 6379 端口到宿主机的 6379 端口。外部可以直接通过宿主机ip:6379 访问到 Redis 的服务。

5.通过 redis-cli 连接测试使用 redis 服务。

docker exec -it redis-test /bin/bash

6.查看 Redis是否启动成功

ps aux | grep redis-server

出现如下,则为成功

上面的方法只能本地访问,我们需要的是外网访问redis

4.创建conf 和 data 文件夹

mkdir /usr/local/docker/conf

/usr/local/docker/data

然后再conf下创建redis.conf 的配置文件

放入如下内容,密码可不用配置

6.查看Redis是否启动

docker ps

就可以看到redis了,如果状态是UP,那么就可以确定是安装成功了,启动完成之后,把云服务器的6379端口出入打开,就可以看到了。

这时候我们就可以去使用外部工具进行连接了。

1.拉取镜像

docker pull mysql

2.在opt下创建文件夹

cd /opt/

mkdir mysql_docker

cd mysql_docker/

echo $PWD

3.启动mysql容器,在var/lib/docker/containers/下查看容器

cd /var/lib/docker/containers/

4.查看mysql进程

docker ps -a

5.进入mysql容器,并登陆mysql

docker exec -it mysqlserver bash

mysql -uroot -p

123456

6.开启远程访问权限

use mysql

select host,user from user

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'

flush privileges

然后去连接一下数据库测试就可以了

7.关闭docker中mysql容器

docker stop mysqlserver

8.关闭docker

systemctl stop docker


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8082630.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存