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容器的更多相关文章

  1. 通过运行一个tomcat容器来记录下初学docker常用的几个命令---容器篇

    1.查看容器列表 显示正在运行的容器: [root@localhost HMK]# docker ps 显示所有容器,包括未运行的: [root@localhost HMK]# docker ps - ...

  2. Docker实战之创建一个tomcat容器

    一.Docker与虚拟机的区别 二.Docker学习步骤 2.1:安装宿主操作系统 在VMVare中安装了Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic ...

  3. 使用docker创建和运行跨平台的容器化的mssql数据库

    我们一般启用sql server数据库要么选择安装SQL Server实例和管理工具(SSMS),要么用vs自带的数据库.如今net跨平台成为趋势,今天给大家介绍另一种我最近在玩的方式,即使用dock ...

  4. [Docker] 六步运行一个 sentry 实例

    # 6步, https://hub.docker.com/_/sentry/ # 依赖Redisdocker run -d --name sentry-redis redis:3.2.12 # 依赖p ...

  5. Docker入门(windows版),利用Docker创建一个Hello World的web项目

    Docker 当大家点开这篇博客的时候,相信大家对docker多多少少也有些认识了,最近学习docker这门技术,略微有些心得,写篇文章记录一下学习过程并帮大家跳过一些坑. docker的核心有两个, ...

  6. Docker 学习之mysql与redis(二)

    在上一随笔中主要就是记录docker的基本使用以及nginx与php服务器的配置:在这一章将主要记录docker安装mysql与redis. 本节随笔参考网址:https://www.runoob.c ...

  7. 利用Docker手动构建WebLogic镜像的步骤

    info 我的Docker环境信息如下: [root@localhost ~]# docker info -f " OSType: {{.OperatingSystem}} {{.Archi ...

  8. dokcer 运行和进入容器

    <pre name="code" class="html">docker:/root# docker run -itd --name zjtest8 ...

  9. 在docker上安装运行mysql实例

    ps:实验环境是:CentOS Linux release 7.3  64位1.获取mysql镜像从docker hub的仓库中拉取mysql镜像docker pull mysql查看镜像docker ...

随机推荐

  1. 使用jQuery对图片进行居中设置

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. mybatis 高级映射和spring整合之逆向工程(7)

    mybatis 高级映射和spring整合之逆向工程(7) 4.0 逆向工程 4.1 mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行 ...

  3. JDK1.7源码阅读tools包之------ArrayList,LinkedList,HashMap,TreeMap

    1.HashMap 特点:基于哈希表的 Map 接口的实现.此实现提供所有可选的映射操作,并允许使用 null 值和 null 键.(除了非同步和允许使用 null 之外,HashMap 类与 Has ...

  4. Redmine 甘特图导出 PDF 和 PNG 中文乱码问题

    Redmine使用了RMagick来处理图片,fpdf处理PDF,并在调用时设定了字体PDF中文字体 redmine 中关于PDF字体设置的代码 case pdf_encoding           ...

  5. JDBC连接MySQL数据库(一)——数据库的基本连接

    JDBC的概念在使用之前我们先了解一下JDBC的概念, JDBC的全称是数据库连接(Java Database Connectivity),它是一套用于执行SQL语句时的API,应用程序可以通过这套A ...

  6. VUE 利用 webpack 给生产环境和发布环境配置不同的接口地址

    转载地址: https://blog.csdn.net/gebitan505/article/details/58166055 VUE 利用 webpack 给生产环境和发布环境配置不同的接口地址 前 ...

  7. 22 链表中倒数第k个节点(第3章 高质量的代码-代码的鲁棒性)

    题目描述: 输入一个链表,输出该链表中倒数第k个结点. 尾节点是倒数第一个节点 测试用例:   功能测试(第k个节点在中间.是头节点.是尾节点) 特殊输入测试(链表头节点是nullptr指针.链表的头 ...

  8. UVA1585 - Score(紫书习题3.1)

    如何计算你们的得分呢?,如"OOXXOXXOOO". "O"表示问题的正确答案,"X"表示错误的答案.那么它得分是由它自己和它刚刚以前连续的 ...

  9. MAVN(自动创建maven项目骨架) 项目架构的生成

    1.Maven的项目架构生成 A.打开DOS命令窗口选定文件的更跟目录 B:输入命令 mvn  archetype:generate C:根据提示输入对应的标识 如图: 最后提示 SUCCESS 即为 ...

  10. 《黑白团团队》第八次团队作业:Alpha冲刺 第四天

    项目 内容 作业课程地址 任课教师首页链接 作业要求 团队项目 填写团队名称 黑白团团队 填写具体目标 认真负责,完成项目 团队项目Github仓库地址链接. 第四天 日期:2019/6/18 成员 ...