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. Vue-1:鄙人是如何开始学习的

    说实话,Vue这个东西早想学习她了.为啥呢?不是因为有多火热多好用多水嫩...而是每次面试都会问我,你会不会Vue...接下来就是突然安静的空气,,,真TM气人.所以鄙人在经历诸事之后决心一定要搞一下 ...

  2. flutter 打包

    iOS打包 iOS打包需要注意一下一些设置 info.plist 设置ATS.白名单.字符串等等 Assets.xcassets 替换icon,替换LaunchImage中内容 注意LaunchIma ...

  3. "并发用户数量"的正确英文表示

    并发用户数量the number of concurrent users 最佳并发用户数量the optimum number of concurrent users 最大并发用户数量 the max ...

  4. 【LeetCode】18、四数之和

    题目等级:4Sum(Medium) 题目描述: Given an array nums of n integers and an integer target, are there elements ...

  5. python 爬虫 目录

    爬虫 介绍 python 爬虫 urllib模块 python 爬虫 requests模块

  6. nginx文件路径配置(root|alias)

    nginx指定文件路径主要有两种方式:root|alias. 那么他们究竟有什么区别呢? 指令的使用方法和作用域: [root] 语法:root path 默认值:root html 配置段:http ...

  7. spring data 返回任意字段

    在spring boot + spring data查询数据库的过程中,有时候总会出现一些复杂的查询,我们希望数据库返回的字段能随意改变.这个需求在mybatis里很好解决,只需要用map接收就可以, ...

  8. [Python3] 033 异常

    目录 异常 1. 简介 2. 异常的分类 3. 出现异常小例子 例子 4. 异常处理 5. 解决异常小例子 5.1 例子1 5.2 例子2 5.3 例子3 5.4 例子4 6. 手动引发异常 6.1 ...

  9. Spring 中的几个常用的钩子接口

    1.Aware接口 Awear 这个单词的意思是知道的,所以可以猜想以Awear 结尾的接口意思可以把他知道的东西告诉我们.常用的Awear接口有 ApplicationContextAware和 B ...

  10. PostgreSQL中with和without time zone两者有什么区别

    with和without time zone两者有什么区别 1.区别 1)名字上看一个是带时区的,另一个是不带时区的,查出来的时间是一样的,只是一个带时区标志,一个不带而已,时区的基准是格林威治时间U ...