Vagrant安装Docker及Docker上安装Redis并设置密码

2023-03-01 13:45:49 浏览数 (1)

一、 Vagrant安装Docker

1、 概述:

1.1、docker是什么?

Docker 是世界领先的软件容器平台。 开发人员利用 Docker 可以消除协作编码时“在我的机器上可正常工作”的问题。 运维人员利用 Docker 可以在隔离容器中并行运行和管理应用,获得更好的计算密度。 企业利用 Docker 可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为 Linux 和 Windows Server 应用发布新功能。

1.2、为什么要使用docker?

使用docker可以解决以下问题:

1、减少搭建和配置环境的麻烦 ​ 开发程序流程:首先在开发环境进行编码操作 -> 软件开发完毕后会放至测试环境进行测试 -> 最后测试通过后上线也就是生产环境运行。因此在项目开发的整个流程中至少需要3个环境, 使用docker前:我们可能需要搭建三个环境,且三个环境不一定完全一致从而出现很多莫名的错误。 使用docker后:只需要在服务器上安装docker虚拟化引擎,将我们的项目运行环境打包成镜像后,只需要在每台服务器上实例化开发环境镜像,便可以一键式部署环境。 2、解决应用之间的隔离 ​ 举例说明:比如在一个docker上拉取mysql和redis镜像,相当于在docker上安装了两台迷你的Linux容器,一台安装的mysql而另一台安装了redis。因此在运行时两个容器互不干扰。

具体详情大家可以参考官网:http://www.docker-cn.com/what-container#/virtual_machines]()

2、下面开始安装Docker

1、首先切换用户,由vagrant用户切换为root用户

代码语言:javascript复制
# 输入密码 vagrant
su root

卸载系统原来装有的docker虚拟化引擎。

代码语言:javascript复制
sudo yum remove docker 
                  docker-client 
                  docker-client-latest 
                  docker-common 
                  docker-latest 
                  docker-latest-logrotate 
                  docker-logrotate 
                  docker-engine

2、安装docker依赖包

代码语言:javascript复制
sudo yum install -y yum-utils

3、设置安装docker的仓库地址

代码语言:javascript复制
sudo yum-config-manager --add-repo 
    https://download.docker.com/linux/centos/docker-ce.repo

4、安装docker引擎、操作docker客户端、docker容器

代码语言:javascript复制
sudo yum install docker-ce docker-ce-cli containerd.io

5、启动docker

代码语言:javascript复制
sudo systemctl start docker

6、配置docker镜像加速(使用阿里云)

代码语言:javascript复制
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://61yed5z1.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

二、docker安装应用篇

1、redis安装应用篇

在docker容器中安装redis镜像并初始化镜像。

1.1、第一步:拉取当前docker仓库最新的redis镜像文件
代码语言:javascript复制
# 由于我使用的是vagrant管理centos/7虚拟机,进入虚拟机默认是vagrant用户,存在权限问题,所以首先切换到root用户在进行其他操作,root用户的默认密码为vagrant
su root

# 下载redis最新镜像文件
docker pull redis

 # 查看镜像是否安装成功
docker images
1.2、第二步:redis镜像文件下载成功后,初始化一个redis容器并运行。

镜像和容器的关系:就相当于java中类和对象的管理,一个镜像可以创建多个容器且每个容器之间互不干扰。比如:一个redis镜像可以创建多个redis实例,相当于你在window系统中启动了redis服务器,但是端口号不能相同,否则会出现端口占用的情况。

代码语言:javascript复制
# 首先在本地创建redis的配置文件和redis数据的存放目录,并设置与redis容器内的文件目录相映射,这样我如果需要修改redis容器内的配置文件时,只需要修改本地的映射文件即可,则不需要进入redis容器内操作redis的配置文件了。 (补:mkdir:创建文件夹;touch: 创建文件)
mkdir -p /vagrant/wuming/mydata/redis/conf
touch /vagrant/wuming/mydata/redis/conf/redis.conf

# 创建redis实例
docker run -p 6379:6379                      # 端口映射  虚拟机对外端口号:redis实例的默认端口号
--name redis                                 # redis实体名称
-v /vagrant/wuming/mydata/redis/data:/data  # redis数据存储文件目录,将本地目录和redis容器目录相互映射
-v /vagrant/wuming/mydata/redis/conf/redis.conf:/etc/redis/redis.conf  #本地配置文件与redis容器的配置文件相映射
-d redis                                    # redis镜像名称
redis-server /etc/redis/redis.conf          # redis启动方式

如果您想粘贴命令的话,请粘贴这里的,避免因为换行而出现错误,请根据您的需要更换挂载文件目录。

docker run -p 6379:6379 --name redis -v /vagrant/wuming/mydata/redis/data:/data -v /vagrant/wuming/mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf

1.3、查看redis实例是否初始化成功
代码语言:javascript复制
# 查看运行的容器信息
docker ps

# 如果没有查看运行的redis实例信息,查询所有的容器信息,包括开启与关闭的实例。
docker ps -a

# 查看redis实例启动失败的日志
docker logs -f redis

# 排查错误重新启动。
1.4、redis实例成功启动后,为了redis的运行安全,最好给redis设置密码。目下有三种方法,根据实际需要选择其中一种。
代码语言:javascript复制
# 方法一: 创建redis实例时,设置密码,为了便捷起见,这里不写挂载文件语句了。
docker run --name redis -p 6379:6379 -d reids:latest --requirepass "123456"


# 方法二:在容器启动后,进入容器为其配置密码
docker exec -it redis /bin/bash
# 运行redis客户端
redis-cli
# 查询redis的密码
config get requirepass
# 设置redis的密码
config set requirepass "123456"
# 进行认证,才可以操作redis
auth "123456"


# 方法三:进入redis容器中redis.conf对应centos7的挂载文件(本地文件名也为redis.conf),编辑redis.conf
vi /vagrant/wuming/mydata/redis/conf/redis.conf
# 添加语句
requirepass 123456
# 添加完后保存并重启redis实例(或者成为redis容器)

此时就可以进行redis的正常测试了

代码语言:javascript复制
# 连接redis客户端
docker exec -it redis redis-cli

# 填写redis设置的密码
auth 123456

# 返回OK,表示登录成功。
到此在Vagrant安装Docker和在Docker安装Redis就安装完成了。谢谢您的阅览,需要能对您有所帮助。

0 人点赞