1,多容器环境

运行docker容器

进入容器并查看该容器的IP

exit退出容器

运行超小的linux的docker镜像alpine

可以看到如果没有提前把镜像pull到本地,直接run的话,它会自动去pull。

进入容器
docker exec -it 6e913 sh

注:sh和bash都是常用的shell

安装curl

curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。
http://www.ruanyifeng.com/blog/2019/09/curl-reference.html

用alpine容器中的curl工具 访问 nginx容器

exit退出容器

因为在实际生产中我们可能不知道nginx容器的ip,那怎么访问呢

先把linux容器删掉

docker run -dit --link mynginx:mynginx alpine
--link 前者是要连接的容器,后者是要连接的容器的别名。

通过域名方法访问nginx容器

查看hosts文件

可以看到 --link参数就是在hosts文件中增加了条映射

当我们访问 mynginx域名时就自动解析为 172.17.0.2这个ip

2,Docker-Compose

docker-compose是一个Python程序,可以很方便地管理 由多个Docker实例组成的分布式服务。

如果需要比较多的容器,向上面那样挨个配置比较繁琐,这里就引出了docker-compose这个工具。

docker-compose 是一个用户定义和运行多个容器的 Docker 应用程序。在 Compose 中你可以使用 YAML 文件来配置你的应用服务。然后,只需要一个简单的命令,就可以创建并启动你配置的所有服务。
先安装python-pip软件包
sudo aptitude install python-pip 安装docker-compose
sudo pip install docker-compose>=1.8.

一个实验来说明docker-compose的使用,这个实验要搭建的环境由三个容器组成。

把这三个容器的镜像配置和映射关系等都写到一个后缀为.yml的配置文件中

这是一个yml文件的截图

第1行 version即版本号

第3到9为nginx服务(容器)的配置,image配置镜像,ports配置端口(命令中的-p),volumes配置映射文件(命令中的-v)

在该配置文件所在目录运行命令
docker-compose up -d
-d 后台启动

可以看到这样就运行了三个容器。

感觉这yaml文件类似于Makefile文件啊。

3,kubernetes(k8s)了解

k8s是谷歌开源的一个容器管理编排工具,常用它来编排docker容器,它和docker一样都是用go语言编写的。

k8s的基本架构

k8s调度的最小单位是pod(docker+pause),一个node中可以包含多个pod。

其中的deployment用于维持pod的数量,但我们设置10pod提供服务,过程中有1个发生故障停止服务,该模块会自动启动1个pod维持设定的pod数量。

其中的service用于负载均衡,把多个pod抽象为一个服务,把多个pod分配到不同的node。

详见B站视频

https://www.bilibili.com/video/av61131351

https://www.bilibili.com/video/av61990770

docker 入门(2)的更多相关文章

  1. 第三章 Docker 入门

    第三章 docker 入门 3.1 确保docker已经就绪 首先查看docker程序是否存在,功能是否正常 [#3#cloudsoar@cloudsoar-virtual-machine ~]$su ...

  2. Docker入门教程(九)10个镜像相关的API

    Docker入门教程(九)10个镜像相关的API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第九篇,重点介绍了镜像相关的Docker Remote ...

  3. Docker入门教程(八)Docker Remote API

    Docker入门教程(八)Docker Remote API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第八篇,重点介绍了Docker Remote ...

  4. Docker入门教程(七)Docker API

    Docker入门教程(七)Docker API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第七篇,重点介绍了Docker Registry API和 ...

  5. Docker入门教程(六)另外的15个Docker命令

    Docker入门教程(六)另外的15个Docker命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第六篇,继续介绍Docker命令.之前的第二篇文章 ...

  6. Docker入门教程(五)Docker安全

    Docker入门教程(五)Docker安全 [编者的话]DockOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第五篇,介绍了Docker的安全问题,依然是老话重谈,入门者可以通 ...

  7. Docker入门教程(四)Docker Registry

    Docker入门教程(四)Docker Registry [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第四篇,介绍了Docker Registry,它 ...

  8. Docker入门教程(三)Dockerfile

    Docker入门教程(三)Dockerfile [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第三篇,介绍了Dockerfile的语法,DockerOn ...

  9. Docker入门教程(二)命令

    Docker入门教程(二)命令 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第二篇,介绍了Docker的基本命令以及命令的用法和功能. 在Docker ...

  10. Docker入门教程(一)介绍

    http://dockone.io/article/101 Docker入门教程(一)介绍 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第一篇,介绍了 ...

随机推荐

  1. Visual Studio Code-Vscode下快速补全新建HTML文件默认代码

    1.新建文件. 2.点击右下角文档格式:纯文本,上方弹出框输入HTML改成 html文档格式. 3.输入“ !”,按tab. 4.完成.

  2. linux性能分析之平均负载

    平均负载 1,执行 top 或者 uptime 命令 来了解系统负载 uptime 分析显示 当前时间,系统运行时间,正在登录用户数 平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程 ...

  3. 联想 ThinkPad 笔记本 Fn 键 关闭与启用方法

    联想 ThinkPad 笔记本 Fn 键 关闭与启用方法 [最快捷的方式] 按 Fn + Esc 键,进行切换启用或者关闭 Fn 功能键 So easy!!! ^_^

  4. Linux :linux磁盘分区(普通分区2T以内),安装免安装版mysql(tar.gz)

    1.磁盘分区: 1 以root身份登录 查看磁盘信息(自行选择需要使用的磁盘,此处只需要了解信息) fdisk –l 创建新硬盘 fdisk /dev/vdb (决定使用哪个磁盘) 输入n回车,再输入 ...

  5. elasticsearch-head-master下运行npm install报npm WARN elasticsearch-head@0.0.0 license should be a valid SPDX license expression

    2个月没有启动es和es配套服务,今天运行时,发现如下问题: 运行npm install 出现npm WARN elasticsearch-head@0.0.0 license should be a ...

  6. 【VS开发】内存泄漏相关问题

    之所以撰写这篇文章是因为前段时间花费了很大的精力在已经成熟的代码上再去处理memory leak问题.写此的目的是希望我们应该养成良好的编码习惯,尽可能的避免这样的问题,因为当你对着一大片的代码再去处 ...

  7. Markdown用法说明(用此篇博客做示例)

    一份好的博客文档离不开一个优秀的编辑器.借此篇文章介绍一下编写该博客markdown的语法,后续再增加介绍其他语法,方便大家写出更好更漂亮的文档.点击左上角github,有主题源码哦 一份好的博客文档 ...

  8. Linux里添加用户的一些简单命令

    普通用户---------普通用户对应提示符$ 超级用户-----------超级用户对应提示符# 1.添加用户:useradd diqi 2.查看用户:tail -1 /etc/passwd 3.设 ...

  9. @Transient注解的使用(不被序列化和作为临时变量存储)

    转自:https://blog.csdn.net/sinat_29581293/article/details/51810805 java 的transient关键字的作用是需要实现Serilizab ...

  10. 【有奖征集】报表模板库邀您提反馈,轻松赢取P30!

    >>立即参赛 赛事初衷 大数据时代,数据的价值愈发彰显,什么样的报表才能真正帮助业务决策?这几乎是所有信息化建设的企业和个人都在思考的问题. 作为报表领域标杆企业,葡萄城于2017年推出了 ...