docker实践入门之二
来源:互联网 发布:广东红松网络怎么样 编辑:程序博客网 时间:2024/05/30 02:24
开始动手
先准备一个空的系统,现在要在上面装一个redis,传统的做法就是用系统的包管理器装一个呗,比如debian下可以用
sudo apt-get install -y redis-serversudo service redis-server start
然而在docker下是这样:
docker pull redisdocker run -d --name redis redis
第一步是从docker官方registry上下载最新版的redis image,第二步是把redis运行起来(也就是生成一个运行着redis的container)。
那么二者有什么不同呢?前者是直接把redis安装到你的系统里,当然同时也会安装上一堆依赖包。后者则是下载一个image,然后在docker里跑,所有的依赖都在image里,与host系统完全没有影响,按这个命令跑起来,甚至都不会占用host的6379端口。
为什么不会占用端口?不占用端口怎么使用?
docker的网络
docker的网络是很特殊的,它默认会在系统里创建一个网桥叫docker0,而所有的container默认都是挂在这个网桥里的,所以端口也是开放在这个网桥里,如果你想在host里使用redis,那就要这样运行:
docker run -d --name redis -p 6379:6379 redis
其中-p参数就是把container里的6379映射到host的6379。
完整的用法是: -p [[hostip:]hostport:]containerport
除此之外,二者还有一个很大的区别就是,安装到系统里的redis只能跑一个实例(除非绑定不同的端口号),而docker可以跑多个container(同一端口号),只要用--name指定不同的名字即可——因为不同的container在docker0网桥里是不同的主机。
如果是把端口开放到host,那么这个redis用起来跟直接装在系统里没什么不同,直接用redis-cli -h localhost即可连上使用。如果没有开放端口,那么就只能在docker网络里用。比如开一个交互的docker container:
docker pull debiandocker run -it --link redis:redis debian /bin/bash
然后在这个container里用apt装一个redis-client,即可用redis-cli -h redis连接到之前运行的是那个redis contianer。
这里的--link redis:redis就是把redis container映射为这个container里的redis主机名。
其用法是: --link container:name_in_hosts
以上即为基本的docker网络应用,更高级和复杂的网络应用详见相关文档。
- docker实践入门之二
- docker实践入门之三
- docker实践入门之四
- docker实践入门之五
- docker实践入门之六
- Docker入门实践(二) Docker的安装配置
- Docker从入门到实践笔记(二)
- Docker实践快速入门
- docker实践入门之一
- docker入门实践
- Docker 入门实践
- Docker实践快速入门
- Docker 入门实践
- Docker入门实践(一) 理解Docker
- Docker 基础入门与实践
- Docker从入门到实践
- Docker 从入门到放弃(二)之Spring Boot
- docker入门之HelloWorld
- Sqlite管理工具选用
- 判断输入的字符串里面是否有表情
- 解决子级对象使用css float浮动 而父级div不能自适应高度,不能被父级内容撑开解决方法,父级div没有高度解决方法
- C语言编译与链接
- 多线程
- docker实践入门之二
- Linux内核分析实验八
- 数据库视图和索引
- 判断一个数是否为对称且不大于五位数的素数
- ArcGIS Runtime SDK for iOS(五) --- 空间几何分析与操作(上)
- Linux操作系统安装ZooKeeper
- Java操作MySQL数据库示例
- 将博客搬至CSDN
- zend_language_scanf & parse