利用docker构造并运行一个Redis容器
1、首先我们来编写一个基本的Dockerfile
在任意一个目录下
$ vi Dockerfile
内容填写如下:
FROM ubuntu:14.04
RUN apt-get update
RUN apt-get -y install redis-server
EXPOSE 6379
ENTRYPOINT ["/usr/bin/redis-server"]
2、构建并运行容器
在编写完Dockerfile之后,我们就可以运行一下命令来构建一个镜像:
$ sudo
docker build -t <your username>
/redis
.
注意这句命令的后面的那个 "."是不可缺少的。
稍等片刻后镜像就会创建完成。接着我们通过运行docker run命令来生成构建好的容器了:
$ sudo
docker run --name redis -d <your username>
/redis
其中-d参数表示我们希望通过detached模式来运行容器,也就是让容器持续地在后台运行。
3、创建并连接测试容器
我们可以通过使用docker run带上一个-link参数把生成好的Redis容器链接到新建的测试容器上,使得不需要暴露任何端口就可以让测试容器访问Redis服务了:
$ sudo
docker run --link redis:db -i -t ubuntu:14.04
/bin/bash
通过上面的命令,我们把redis容器链接到了新的ubuntu容器上,并且取名为db,这样我们就只会把Redis服务暴露给这个容器而不是更大的范围。
接下来我们在测试容器里装上redis-cli:
$ apt-get update
$ apt-get -y install redis-server
$ service redis-server stop
由于使用了-link参数,我们会发现环境变量中产生了一些DB_开头的变量:
$
env
|
grep
DB_
DB_NAME=/condescending_mclean/db
DB_PORT_6379_TCP_PORT=6379
DB_PORT=tcp://172.17.0.6:6379
DB_PORT_6379_TCP=tcp://172.17.0.6:6379
DB_PORT_6379_TCP_ADDR=172.17.0.6
DB_PORT_6379_TCP_PROTO=tcp
于是我们就可以在测试容器中通过这些变量连接到Redis服务了:
$ redis-cli -h $DB_PORT_6379_TCP_ADDR
$ redis 172.17.0.6:6379>
$ redis 172.17.0.6:6379>
set
hello world
OK
$ redis 172.17.0.6:6379> get hello
"world"
$ redis 172.17.0.6:6379>
exit
至此一个包含Redis服务的Docker容器就创建完成了。
利用docker构造并运行一个Redis容器的更多相关文章
- 通过运行一个tomcat容器来记录下初学docker常用的几个命令---容器篇
1.查看容器列表 显示正在运行的容器: [root@localhost HMK]# docker ps 显示所有容器,包括未运行的: [root@localhost HMK]# docker ps - ...
- Docker实战之创建一个tomcat容器
一.Docker与虚拟机的区别 二.Docker学习步骤 2.1:安装宿主操作系统 在VMVare中安装了Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic ...
- 使用docker创建和运行跨平台的容器化的mssql数据库
我们一般启用sql server数据库要么选择安装SQL Server实例和管理工具(SSMS),要么用vs自带的数据库.如今net跨平台成为趋势,今天给大家介绍另一种我最近在玩的方式,即使用dock ...
- [Docker] 六步运行一个 sentry 实例
# 6步, https://hub.docker.com/_/sentry/ # 依赖Redisdocker run -d --name sentry-redis redis:3.2.12 # 依赖p ...
- Docker入门(windows版),利用Docker创建一个Hello World的web项目
Docker 当大家点开这篇博客的时候,相信大家对docker多多少少也有些认识了,最近学习docker这门技术,略微有些心得,写篇文章记录一下学习过程并帮大家跳过一些坑. docker的核心有两个, ...
- Docker 学习之mysql与redis(二)
在上一随笔中主要就是记录docker的基本使用以及nginx与php服务器的配置:在这一章将主要记录docker安装mysql与redis. 本节随笔参考网址:https://www.runoob.c ...
- 利用Docker手动构建WebLogic镜像的步骤
info 我的Docker环境信息如下: [root@localhost ~]# docker info -f " OSType: {{.OperatingSystem}} {{.Archi ...
- dokcer 运行和进入容器
<pre name="code" class="html">docker:/root# docker run -itd --name zjtest8 ...
- 在docker上安装运行mysql实例
ps:实验环境是:CentOS Linux release 7.3 64位1.获取mysql镜像从docker hub的仓库中拉取mysql镜像docker pull mysql查看镜像docker ...
随机推荐
- 使用jQuery对图片进行居中设置
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- mybatis 高级映射和spring整合之逆向工程(7)
mybatis 高级映射和spring整合之逆向工程(7) 4.0 逆向工程 4.1 mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行 ...
- JDK1.7源码阅读tools包之------ArrayList,LinkedList,HashMap,TreeMap
1.HashMap 特点:基于哈希表的 Map 接口的实现.此实现提供所有可选的映射操作,并允许使用 null 值和 null 键.(除了非同步和允许使用 null 之外,HashMap 类与 Has ...
- Redmine 甘特图导出 PDF 和 PNG 中文乱码问题
Redmine使用了RMagick来处理图片,fpdf处理PDF,并在调用时设定了字体PDF中文字体 redmine 中关于PDF字体设置的代码 case pdf_encoding ...
- JDBC连接MySQL数据库(一)——数据库的基本连接
JDBC的概念在使用之前我们先了解一下JDBC的概念, JDBC的全称是数据库连接(Java Database Connectivity),它是一套用于执行SQL语句时的API,应用程序可以通过这套A ...
- VUE 利用 webpack 给生产环境和发布环境配置不同的接口地址
转载地址: https://blog.csdn.net/gebitan505/article/details/58166055 VUE 利用 webpack 给生产环境和发布环境配置不同的接口地址 前 ...
- 22 链表中倒数第k个节点(第3章 高质量的代码-代码的鲁棒性)
题目描述: 输入一个链表,输出该链表中倒数第k个结点. 尾节点是倒数第一个节点 测试用例: 功能测试(第k个节点在中间.是头节点.是尾节点) 特殊输入测试(链表头节点是nullptr指针.链表的头 ...
- UVA1585 - Score(紫书习题3.1)
如何计算你们的得分呢?,如"OOXXOXXOOO". "O"表示问题的正确答案,"X"表示错误的答案.那么它得分是由它自己和它刚刚以前连续的 ...
- MAVN(自动创建maven项目骨架) 项目架构的生成
1.Maven的项目架构生成 A.打开DOS命令窗口选定文件的更跟目录 B:输入命令 mvn archetype:generate C:根据提示输入对应的标识 如图: 最后提示 SUCCESS 即为 ...
- 《黑白团团队》第八次团队作业:Alpha冲刺 第四天
项目 内容 作业课程地址 任课教师首页链接 作业要求 团队项目 填写团队名称 黑白团团队 填写具体目标 认真负责,完成项目 团队项目Github仓库地址链接. 第四天 日期:2019/6/18 成员 ...