Docker怎么运行一个Redis服务
这篇文章主要介绍“Docker怎么运行一个redis服务”,在日常操作中,相信很多人在Docker怎么运行一个Redis服务问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Docker怎么运行一个Redis服务”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
成都创新互联公司是一家专注于成都网站制作、成都网站设计、外贸营销网站建设与策划设计,会昌网站建设哪家好?成都创新互联公司做网站,专注于网站建设10余年,网设计领域的专业建站公司;建站业务涵盖:会昌等地区。会昌做网站价格咨询:18982081108
安装
参考官网即可。我在Ubuntu-14.04上通过User Guide没有任何问题。
Docker神奇的AUFS文件系统
执行:docker info可以看到系统级别的信息。如下所示,可以看到docker使用的存储驱动叫aufs。简而言之,AUFS就是一个可堆叠联合文件系统,通过aufs可灵活组装一个目标容器,如在一个只读的操作系统上叠加一个可读可写的应用程序容器,当应用程序执行过程中发生数据变化,只在可写的容器层发生,这样可实现灵活的容器组装(如替换操作系统层而不影响应用程序层),同时无需像image一样需要保存成一个大文件,节省存储空间。
Containers: 2 Images: 20 Storage Driver: aufs Root Dir: /var/lib/docker/aufs Dirs: 24 Execution Driver: native-0.2 Kernel Version: 3.13.0-24-generic WARNING: No swap limit support
烦人的sudo
ubuntu下每次执行docker都要输入sudo,比较烦人,可通过如下配置简化
# 添加当前用户到docker用户组里,注意这里的littcai为ubuntu server登录用户名 sudo gpasswd -a littcai docker # 重启Docker后台监护进程 sudo service docker restart # 重启之后,尝试一下,是否生效 docker version #若还未生效,则系统重启,则生效 sudo reboot
运行
运行一个Redis服务
执行如下命令:运行一个名为common-redis的docker容器,-d表示以daemon方式运行,-p表示将容器内的6379端口映射到宿主主机的6379端口,这样一个最简单的redis服务就创建好了。
sudo docker run --name common-redis -d -p 6379:6379 redis
连接到Redis服务
运行redis-cli命令并link到之前运行的common-redis服务上,-it表示开一个tty终端,提供交互模式,--rm表示自动删除已运行存在的相同image的容器
sudo docker run -it --link common-redis:redis --rm redis sh -c 'exec redis-cli -h "$REDIS_PORT_6379_TCP_ADDR" -p "$REDIS_PORT_6379_TCP_PORT"'
Attach到Container
有时候我们需要重新进入一个正在运行的container,这里我们可以使用attach命令,其中-i表示以交互方式访问。当需要退出时,需使用ctrl-p+ ctrl-q(注意是连续两个指令)而不是exit(exit会导致容器停止)。
docker attach -i f2b0ae55d07a
保存修改(new image)
首先用docker ps -a命令查询所有已创建的容器,如下图所示,得知其CONTAINER ID=f2b0ae55d07a
执行如下命令保存镜像,其中-m表示本次提交的注释,-a为author,f2b0ae55d07a为容器ID,ycai/ubuntu-jdk为镜像名称(此处通过前缀方式增加了用户名作为分类,方便查询),v1为tag名。
docker commit -m="Basic JDK ENV" -a="ycai" f2b0ae55d07a ycai/ubuntu-jdk:v1
提交成功后,可通过docker images命令查看镜像仓库中是否有刚才保存的镜像,如下图所示
拷贝文件
拷贝容器内文件到Host
sudo docker cp container:/path hostpath
拷贝Host文件到容器内
注:这个操作不修改原来的image内容,而是再它的基础上新建一个image.
sudo docker insert image url path
挂载Host目录到容器中
通过-v参数可以将Host的指定目录mount到目标容器的指定目录,这样就可以直接在Host中修改文件而不用每次都复制到容器中了。
sudo docker run --name tomcat -v /home/user/webapps:/opt/tomcat/webapps ubuntu-tomcat
Docker容器连接
未理解问题
问题:通过-v挂载了Host的一个目录到容器中,然而退出后通过start命令再启动该容器,则Host该目录下的文件变化没法体现到容器中,容器中在该目录下的文件操作无法体现到Host中,及mount失效了。
现象:将容器内挂载目录下的文件删掉,退出容器,再重新启动进入容器,发现目录又被重新mount上了,而且又支持双向同步了,诡异
分析:该目录同时也是Host通过mount方式挂载的一个远端存储,由于Host上mount失效导致三者之间不同步
到此,关于“Docker怎么运行一个Redis服务”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!
网站题目:Docker怎么运行一个Redis服务
文章起源:http://pwwzsj.com/article/pjsjgo.html