1.安装docker
保证系统上已安装了docker,如果没有安装,通过sudo apt install docker.io进行安装
2.拉取redis的镜像
①sudo docker search redis可以查看可用的镜像
②sudo docker pull redis:lastesd 等待下载完成,可通过sudo docker images查看所有的已下载的docker镜像
③可通过 sudo docker run -t -i redis启动容器
3.安装nsenter并进入redis
①先通过mkdir nsenter创建一个文件夹(注意,此文件夹可根据自己的需要安装在需要的目录下,名称也是任意的,随你喜欢)
②cd nsenter 进入文件夹,curl http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/utils/util-linux/v2.25/util-linux-2.25.tar.gz | tar -zxf- 下载并解压到当前目录下(下载的版本可以指定)
③cd util-linux-2.25,然后依次执行:./configure --without-ncurses 和 make nsenter && sudo cp nsenter /usr/local/bin 这两个命令
④docker inspect -f {{.State.Pid}} 容器名或者容器id#每一个容器都有.State.Pid,所以这个命令除了容器的id需要我们根据dockerps-a去查找,其他的全部为固定的格式,执行成功之后会返回一个进程id(比如说返回:8283 此id下一步会用到)
⑤nsenter --target 8283(此进程id根据实际返回填写)--mount--uts--ipc--net--pid#输入该命令便进入到容器中,如果执行成功,会进入redis容器
shuai@shuai-virtual-machine:~/yan/util-linux-2.25$ sudo nsenter --target 8238 --mount --uts --ipc --net --pid
root@a297de1d6964:/# redis-cli ping
PONG
root@a297de1d6964:/# redis-cli
127.0.0.1:6379> set myname xiangshang
OK
127.0.0.1:6379> get myname
"xiangshang"
127.0.0.1:6379> exit
解释nsenter指令中进程id之后的参数的含义:
* –mount参数是进去到mount namespace中
* –uts参数是进入到uts namespace中
* –ipc参数是进入到System V IPC namaspace中
* –net参数是进入到network namespace中
* –pid参数是进入到pid namespace中
* –user参数是进入到user namespace中
也可以通过 sudo docker exec -it 容器id /bin/bash 进入容器
启动容器成功就可以操作redis了