Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >docker部署redis实战

docker部署redis实战

作者头像
机智的程序员小熊
发布于 2019-12-11 13:24:18
发布于 2019-12-11 13:24:18
72300
代码可运行
举报
文章被收录于专栏:技术面面观技术面面观
运行总次数:0
代码可运行

换电脑的时候不想再搭建开发环境了!——编程三分钟

什么是docker

Docker是一个用来管理容器的应用程序,而容器就是模拟运行应用程序所依赖环境的一个服务。一般一个容器内只安装一个程序,在容器内的应用程序会认为自己是机器上运行的唯一进程,一台机器可以独立运行多个容器。

使用容器的好处就是不用再繁琐的配置运行环境,便于构建、测试、持续集成;可以动态扩容和缩容、充分利用一台服务器跑多个服务,因此在本机就可以模拟出微服务架构

当然,我个人觉得最爽的一点还是可以在容器里随意的开发测试,但也不用担心把自己心爱的电脑搞的乱七八糟了。

准备

  • 一台安装docker的机器
  • 能通网并访问最新版本的Docker Engine (服务端)
  • 本地开发机器安装了Docker Client(Docker 命令行工具),可通过命令行访问。

运行容器

可以在 官网上 搜索到现成的镜像,也可以用以下方式查找容器,命令格式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker search <name>

实际执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ docker search redis
NAME               DESCRIPTION                                             STARS OFFICIAL AUTOMATED
redis              Redis is an open source key-value store that… 7023            [OK]
bitnami/redis      Bitnami Redis Docker Image 114                                          [OK]   
省略……

我们找到了redis的OFFICIAL(官方)docker 镜像名就是redis,为了让它能提供服务,我们接下来的任务就是让他作为后台服务运行,命令格式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ docker run <options> <image-name>

默认情况下,Docker将在前台运行命令。要在后台运行,需要指定选项-d。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ docker run -d redis
570315fb8a0596ff5581653a77f8ef406f86a0ab4b1a2061de7a423335812ed3

默认情况下,Docker将运行最新版本。如果需要特定版本,则需要将其显式的指定出来。 例如,版本3.2

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ docker run -d redis:3.2

由于这是我们第一次使用Redis镜像,所以它将被下载到Docker主机上,如果本地存在就不会了。

查看运行中的容器

可以用docker ps命令列出所有正在运行的容器,包括用于启动容器的镜像和正常运行的时间等信息。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ docker ps
CONTAINER ID IMAGE   COMMAND                 CREATED       STATUS PORTS NAMES
570315fb8a05 redis   "docker-entrypoint.s…" 5 minutes ago Up 5 minutes 6379/tcp elastic_mclean

列出正在运行的容器的更多详细信息,例如IP地址,命令格式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker inspect <friendly-name|container-id>

通过docker logs命令可以查看容器的日志,命令格式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker logs <friendly-name|container-id>

访问redis

我们现在用容器部署成功了一个redis,但是和直接安装一个redis不一样,容器就像一台虚拟机一样,想要访问服务,要不就进入到里面,要不就通过暴露端口像远程访问一样来进行访问。

-p <host-port>:<container-port>选项可以在启动容器的时候绑定端口。

这个时候使用-name <name>来在启动容器的时候定义一个名称,以后查询以及查看日志都会比较方便。

因为redis默认占用6379端口,我们可以将端口6379映射到本地的6379

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ docker run -d  --name redisHostPort -p 6379:6379 redis:latest
694384d739307f3c5bc59fa

tips:默认情况下,主机上的端口映射到0.0.0.0,可以在定义端口映射的时候指定特定的IP,例如-p 127.0.0.1:6379:6379

假设我们要部署多个redis不可能每次都自己亲手来找一个端口来映射,docker是支持自动绑定到可用端口上的,只要用-p 6379这个参数就可以了,像下面这样。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ docker run -d --name redisDynamic -p 6379 redis:latest
dcd3dabe51c3f0a8ddbdfd

到底绑定了哪个端口,可以用以下命令查询(这个时候就用到自定义的名称redisDynamic了),当然直接用docker ps也是可以的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ docker port redisDynamic 6379
0.0.0.0:32768

存储数据

在使用容器的时候我们会发现,一旦创建和删除、升级容器,里面存储的数据也就随风而去了,所以我们必须想办法把数据存储下来。

我们查询到官网上的redis镜像存储数据的目录在/data目录,然后我们存储在本地/opt/docker/data/redis 使用参数-v 本机位置:容器内位置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run -d --name redisMapped -v /opt/docker/data/redis:/data redis
c9c154695500260407d99d

当然了,也可以把配置文件重定向到本地,可以把所有的容器配置、日志、数据统一管理,非常的方便。

与平台交互

docker run ubuntu ps 启动Ubuntu容器并执行命令ps以查看容器中运行的所有进程。 docker run -it ubuntu bash直接访问容器内的bash shell。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ docker run ubuntu ps
  PID TTY TIME CMD
    1 ?  00:00:00 ps
$ docker run -it ubuntu bash
root@6db973337059:/# exit

访问正在运行的docker docker attach <container> 要attach上去的容器必须正在运行。 docker exec -it <container> bash|sh直接访问容器内的bash shell。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ docker attach c9c154695500 /bin/bash
root@c9c154695500:/data# exit
$ docker exec -it c9c154695500 /bin/bash
root@c9c154695500:/data# exit

这里也可以直接用容器name

  • attach 直接进入容器,不会启动新进程
  • exec 在容器中打开新终端,会启动新进程

那什么时候用attach,什么时候用exec呢?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机智的程序员小熊 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Docker常用命令大全(万字详解)
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
小熊学Java
2022/09/05
9.9K0
Docker容器学习梳理--日常操作总结
使用Docker已有一段时间了,今天正好有空梳理下自己平时操作Docker时的一些命令和注意细节: Docker 命令帮助 $ sudo docker Commands: attach Attach to a running container --将终端依附到容器上 1> 运行一个交互型容器 [root@localhost ~]# docker run -i -t centos /bin/bash
洗尽了浮华
2018/01/22
2.4K0
Docker容器学习梳理--应用程序容器环境部署
关于国内Docker镜像,可以参考:Docker容器学习梳理--基础知识(2) 的Docker镜像使用。 如果我们需要在Docker环境下部署tomcat、redis、mysql、nginx、php等应用服务环境,有下面三种方法: 1)根据系统镜像创建Docker容器,这时容器就相当于是一个虚拟机,进入容器内部署应用环境。 然后将这种应用容器提交为新的镜像,最后基于这种新的应用镜像创建容器,创建时做好端口映射,就可以在外部访问这些应用了。 2)直接通过docker pull拉取别人提交好的tomcat
洗尽了浮华
2018/01/23
2.5K0
Docker容器学习梳理--应用程序容器环境部署
【Docker 系列】docker 学习 二,Docker 的常用命令
咱们可以看官方的帮助文档:https://docs.docker.com/reference/
阿兵云原生
2023/02/16
4410
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、
一句话:镜像时模板,而容器才是真真正正干活的实例对象或实例容器 -> 由镜像生成容器实例。
刘大猫
2025/01/08
1380
快速学习Docker和容器技术
基于浏览器交互式学习Docker和容器 参考:https://www.katacoda.com/courses/docker 部署第一个Docker容器 Docker是什么? Docker将自己
shaonbean
2018/01/02
8290
快速学习Docker和容器技术
Docker的安装和Redis容器
Docker安装,环境:虚拟机CentOS 8;阿里云镜像加速;Redis容器创建。
徐建国
2021/08/03
6530
Docker系列学习文章 - docker基本使用(四)
| 导语通过上一篇文章的学习,我们把docker安装好了,那么安装好docker后该怎么使用呢?本篇文章通过一两个例子跟大家讲述下docker的基本使用。然后,我们还会跟大家讲解下如何进入到一个容器里面。最后,我们再跟大家说说如何停止、挂起和删除一个容器。
宝哥@上云专家
2018/05/07
3.5K6
Docker系列学习文章 - docker基本使用(四)
Docker常用命令
什么是Docker? Docker就是一个容器,但是这个容器里什么都没有,所以我们根据需求不同就要不同的环境,这些环境就是镜像,我们可以用一个镜像生成多个容器,每个容器都有它的ID或NAME。
码客说
2019/10/22
7650
Win10下使用Docker运行redis
Docker 是个好东西,有现成的镜像直接可以使用。不用费时费力在windows上折腾服务器需要的环境。
Java帮帮
2018/12/28
4.4K0
Win10下使用Docker运行redis
Docker 笔记 1:Docker 基础与搭建第一个 Docker 应用栈
经典云计算架构包括 IaaS(Infrastructure as a Service,基础设施即服务)、PaaS(Platform as a Service,平台即服务)、SaaS(Software as a Service,软件即服务)三层服务,如下图所示。
苏易北
2019/01/11
2.2K0
Docker 笔记 1:Docker 基础与搭建第一个 Docker 应用栈
【快学Docker】快速创建容器,容器常用命令
容器是Docker的三大核心概念之一。简单地说,容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。通过这篇文章,我们来讲讲Docker容器的一些常用命令,如创建,停止,重启,暂停等等。
Happyjava
2024/02/01
7000
【快学Docker】快速创建容器,容器常用命令
docker使用学习笔记
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
逝兮诚
2019/11/02
9990
【快学Docker】快速创建容器,容器常用命令
容器是Docker的三大核心概念之一。简单地说,容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。通过这篇文章,我们来讲讲Docker容器的一些常用命令,如创建,停止,重启,暂停等等。
Happyjava
2019/07/18
9460
【快学Docker】快速创建容器,容器常用命令
docker 的简单使用
前提:在一台已经安装了 docker 的机器上,即可使用 docker + 子命令的方式。
acc8226
2022/05/17
3560
docker 常用命令大全
个人理解 docker中的镜像 就像是咱们java 中的Class ,而容器呢 是基于这个镜像构建出的实例 类似于咱java 中 根据Class构造出的一个个实例对象 ,本人是初学者 理解有误还请见谅,并麻烦您说说您的看法让彼此相互学习…
全栈程序员站长
2022/08/27
6310
docker 常用命令大全
开发者不可不知的 Docker 命令
Docker是基于go语言开发,底层技术(Linux下)主要基于cgroups、namespace以及联合文件技术实现的一种进程级别的轻量级虚拟化解决方案。由于Docker进程隔离独立于宿主机上其他进程,因此也称为容器,Docker在容器的基础上,进行了更进一步的封装,从文件系统、网络到进程隔离等,极大简化了容器的创建管理维护工作,降低了开发者使用门槛,因此才在近几年流行开来(毕竟Docker的底层技术在Docker出现之前就已经存在了)。
luoxn28
2020/01/02
6050
Docker 入门
虚拟化技术是一种计算机资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来。虚拟化技术打破了计算机实体结构间的,不可切割的障碍。使用户可以比原本的组态更好的方式,来应用这些资源。
RendaZhang
2020/12/16
7960
Docker之旅
记得以前电脑很贵,微软系统很流行。为了解决兼容性测试问题,我们搭建了很多虚拟机。当时比较流行的是vitural box, vmware。比如当时最新系统是win7,但是市面上还有vista, xp。就可以安装这样的虚拟机,如果每个系统需要不同的浏览器和其它软件,那么还得在虚拟机中安装。整个过程耗时很长,而且比较耗费资源。
赵云龙龙
2019/09/09
1.1K0
Docker之旅
Docker 总结 ubuntu
假设路径分隔符为/,第一个参数为SRC_PATH,第二个参数为DEST_PATH,行为如下:
yiyun
2022/04/01
2.4K0
Docker 总结  ubuntu
相关推荐
Docker常用命令大全(万字详解)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档