docker port如何增加端口_docker部署redis实战

b0830b2e5c068169f52183295de1ac27.png

原创首发于公众号:编程三分钟

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

什么是docker

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

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

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

准备

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

运行容器

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

docker search <name>

实际执行

$ 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,为了让它能提供服务,我们接下来的任务就是让他作为后台服务运行,命令格式:

$ docker run <options> <image-name>

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

$ docker run -d redis
570315fb8a0596ff5581653a77f8ef406f86a0ab4b1a2061de7a423335812ed3

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

$ docker run -d redis:3.2

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

查看运行中的容器

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

$ 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地址,命令格式如下:

docker inspect <friendly-name|container-id>

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

docker logs <friendly-name|container-id>

访问redis

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

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

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

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

$ 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这个参数就可以了,像下面这样。

$ docker run -d --name redisDynamic -p 6379 redis:latest
dcd3dabe51c3f0a8ddbdfd

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

$ docker port redisDynamic 6379
0.0.0.0:32768

存储数据

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

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

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。

$ docker run ubuntu psPID TTY TIME CMD1 ?  00:00:00 ps
$ docker run -it ubuntu bash
root@6db973337059:/# exit

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

$ docker attach c9c154695500 /bin/bash
root@c9c154695500:/data# exit
$ docker exec -it c9c154695500 /bin/bash
root@c9c154695500:/data# exit

这里也可以直接用容器name

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

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

推荐阅读

(点击标题可跳转阅读)

10 个方便的Bash别名

如何向朋友解释什么是云计算?

MySQL:硬盘在24 * 7工作中罢工了,我该怎么办?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487634.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android Studio配置GreenDAO 3.2.0和使用方法

我相信&#xff0c;在平时的开发过程中&#xff0c;大家一定会或多或少地接触到SQLite。然而在使用它时&#xff0c;我们往往需要做许多额外的工作&#xff0c;像编写SQL语句与解析查询结果等。所以&#xff0c;适用于Android ORM框架也就孕育而生了&#xff0c;现在市面上主流…

收件服务器主机名未响应,邮箱收件服务器主机名是什么

邮箱收件服务器主机名是什么 内容精选换一换FTP/SFTP连接适用于从线下文件服务器或ECS服务器上迁移文件到OBS或数据库。当前仅支持Linux操作系统的FTP 服务器。连接FTP或SFTP服务器时&#xff0c;他们的连接参数相同&#xff0c;如表1所示。FTP/SFTP连接参数参数名说明取值样例…

数字孪生技术,让酷炫的智慧城市不再遥不可及

物联网智库 整理发布智慧城市对于不同的人&#xff0c;不同的角色所处不同立场都会有不同的定义。在普通人眼中“上班不拥堵&#xff0c;下班走近路”是智慧城市......在老年人眼中“独自在家遭遇危险&#xff0c;能有人及时提供帮助”是智慧城市......在消防员眼中“火情在苗头…

腾讯文档网页版登录提示服务器,腾讯文档官网地址,腾讯文档电脑版pc端登录入口...

腾讯文档是腾讯近期推出的一款多人协作在线文档产品&#xff0c;不但打通QQ、微信和PC等多个平台&#xff0c;哪么腾讯文档官网地址是什么&#xff1f;有没有电脑版&#xff0c;想在pc端编辑文档怎么办呢&#xff1f;腾讯文档没有电脑版软件&#xff0c;但腾讯文档网页版可以替…

向深度学习三剑客学习四种科研精神(上)

来源&#xff1a;陈德旺科学网博客深度学习&#xff0c;尤其是深度神经网络学习算法的兴起和大数据的加持&#xff0c;结合GPU的算力&#xff0c;如同 “三英战吕布”&#xff0c;终于搞定了人工智能这一反复无常的“吕布”&#xff0c; 使得人工智能得以第三次复兴。如今&…

val什么意思vb中的属性值_老司机带你探索Mysql中int(1)、int(10)、int(11)的区别是什么?...

在上一篇原创文章MySQL一个表的自增id用完了&#xff0c;背井大佬让我用这些姿势再往里插数据&#xff0c;最后留下了一个问题&#xff0c;大家知不知道int(1)和int(11)有什么区别&#xff0c;没有小伙伴互动回答&#xff0c;只有一位老哥让我说一下什么区别&#xff0c;我说上…

c#switch语句判断成绩_C#程序流程控制 知多少?

最近发现读书是个慢过程&#xff0c;很难一口吃个胖子&#xff0c;尤其读这种技术类的书&#xff0c;需要细嚼慢咽的精读&#xff0c;很耐心的读。迄今为止我一个像样的C#程序都没有做过&#xff0c;是小白中的小白&#xff0c;这倒不影响什么&#xff0c;毕竟在曾经学过C语言的…

无穷存在吗?

来源&#xff1a;数学职业家无穷大的存在问题是一个令人惊讶的古老问题。亚里士多德首先引入了一个明确的区分&#xff0c;以帮助理解它的意义。他区别两种不同的无穷大。其中之一&#xff0c;他称之为潜在无穷大&#xff1a;这种无限大刻画了无止境的宇宙或一个永无休止的名单…

机器学习虽好,也要看什么场合!

来源&#xff1a;AI科技评论编译 | 王念编辑 | 丛末身为AI时代的程序猿&#xff0c;我们天生就对数据集敏感。因此&#xff0c;当我们拿到一批真实数据时&#xff0c;激动之情肯定溢于言表&#xff01;举例来说&#xff0c;我们可能拿到了一组患者正确药量的数据集&#xff0c;…

CVTE前端笔试编程题

这些题目是做完笔试之后&#xff0c;在别的地方找到的&#xff0c;现在附上。 1.(1)这题考察的怎么把参数转换为数组&#xff0c;然后再截取你想要的位数。 function C(){var a_argsArray.prototype.slice.call(argumens,0,2);var b_argsArray.prototype.slice.call(arguments,…

springboot 引入jdbc驱动_SpringBoot+MyBatis+Druid整合demo

最近自己写了一个SpringBootMybatis&#xff08;generator&#xff09;druid的demo1. mybatisgenerator逆向工程生成代码1. pom文件pom文件添加如下内容&#xff0c;引入generator插件<!-- mybatis代码生成插件 --><!--如果使用的mysql驱动是6.x的&#xff0c;那就无法…

盘点|世界流行的十大机械工程设计软件,你会用几种?

来源&#xff1a;自机械前线机械设计是机械生产的第一步&#xff0c;是决定机械性能的最主要的因素。为了满足机械产品性能的高要求&#xff0c;在机械设计中大量采用计算机技术进行辅助设计和系统分析&#xff0c;以下是目前世界上流行的十款式机械工程设计软件。1、Autodesk …

SpaceX再发射58颗星链卫星 总数达到538颗

来源&#xff1a;网易智能据外媒报道&#xff0c;在距离上次星链&#xff08;Starlink&#xff09;卫星发射仅仅10天后&#xff0c;美国太空探索技术公司SpaceX于当地时间周六再次发射了最新一批星链卫星。与以往每批发射60颗星链卫星不同的是&#xff0c;SpaceX此次只发射了58…

MVC系列——MVC源码学习:打造自己的MVC框架(一:核心原理)(转)

阅读目录 一、MVC原理解析 1、MVC原理二、HttpHandler 1、HttpHandler、IHttpHandler、MvcHandler的说明2、IHttpHandler解析3、MvcHandler解析三、HttpModule 1、HttpModule能干什么2、HttpModule的使用3、HttpModule和HttpHandler如何区分4、UrlRoutingModule解析 四、总结正…

python中的画布背景设置_教你用python画图—Turtle详细教程

Turtle模块绝对是吸引非专业代码开发者人员学习python入门的好工具通过turtle几行代码的执行软件就会画出漂亮的图形&#xff0c;美观而且有成就感&#xff0c;这样一下子对python编程就产生了兴趣。这些漂亮的图形如三角形、五角星、机器猫等。在写代码的时候改变几个参数&…

城市大脑,是工程问题,但首先是基础科学问题

2020年&#xff0c;在5G&#xff0c;大数据&#xff0c;人工智能、区块链、新基建等一轮轮科技浪潮下&#xff0c;城市大脑开始逐步成为新的城市建设和前沿科技热点。到2020年6月已经有近500多个城市宣布建设“城市大脑”&#xff0c;包括阿里&#xff0c;华为&#xff0c;百度…

JOptionPane弹框常用实例

最近在做swing程序中遇到使用消息提示框的&#xff0c;JOptionPane类其中封装了很多的方法。 很方便的&#xff0c;于是就简单的整理了一下。 1.1 showMessageDialog 显示一个带有OK 按钮的模态对话框。 下面是几个使用showMessageDialog 的例子&#xff1a; Java代码 JOption…

从5G到6G的思考:需求、挑战、技术趋势

来源&#xff1a;5G作者&#xff1a;易芝玲&#xff1a;中国移动首席科学家。王森&#xff0c;韩双锋&#xff0c;崔春风&#xff1a;中国移动通信研究院。王亚峰&#xff1a;北京邮电大学信息与通信工程学院。未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测…

VS2017C++单元测试

0、欢迎食用 希望对点进来的你有所帮助。全文记流水账&#xff0c;内心想法如示例项目名称。1、建立需测试的项目 新建项目正常书写.h 和.cpp文件2、新建单元测试 右击解决方案 -> 添加 -> 新建项目 Visual C -> 测试 -> 本机单元测试项目点击确定出现3、添加被测项…

ncf 推荐系统_浅析神经协同过滤NCF在推荐系统的应用

NCF在推荐领域应用背景CF&#xff0c;也就是协同过滤&#xff0c;在推荐领域有极其广泛的应用&#xff0c;应该没有谁的智能推荐系统是没用到过CF的。CF其实就是挖掘user和item的交互关系&#xff0c;然后生成I2I或者U2I表示向量。传统的CF从数学角度上还是偏行为统计计算的&am…