用ubuntu安装redis的docker镜像

时间:2022-05-01 06:26:22

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了