Loading
0

docker1.12+swarmkit


测试本地镜像仓库
有了本地镜像仓库 registry, 现在我们推送一个测试镜像到本机镜像仓库, 测试下 registry 服
务.
测试:在 node2 主机上推送镜像到 registry
如果想把镜像推送到本地 registry.
需要先 tag 这个镜像的名字成/:

将 tag 后的镜像上传到 registry

push 成功后, 可以调用 registryAPI 查看 registry 中的镜像

在 node3 主机测试从 registry 下载镜像

overlay 网络
解决了镜像构建问题, 为了让应用跑在 swram集群上,我们还需要解决容器间的网络访问问
题.
单台服务器的时候我们应用所有的容器都跑在一台主机上, 所以容器之间的网络是互通的.
现在我们的集群有 3 台主机, 所以 docker 应用的服务会分布在这 3 台主机上.
如何保证不同主机上的容器网络互通呢?
swarm 集群 已经帮我们解决了这个问题了,就是只用 overlaynetwork .
在 docker 1.12 以前, swarm 集群需要一个额外的 key-value 存储(consul, etcd). 来同步
网络配置, 保证所有容器在同一个网段中.
在 docker 1.12 已经内置了这个存储, 集成了 overlay networks 的支持.
下面我们演示下如何创建一个 overlay network:
注:swarm 上默认已有一个名为 ingress 的 overlay 网络, 可以直接使用, 但本文会创建一个
新的
为我们的 docker 应用创建一个名为 dockercoins 的 overlay network

查询 docker network 列表

在网络列表中你可以看到 dockercoins 网络的 SCOPE 是 swarm, 表示该网络在整个 swarm 集
群生效的, 其他一些网络是 local, 表示本机网络.
你只需要在 manager 节点创建 network, swarm 集群会自动处理配置到其他的节点,这是你可以查看其他节点的network. dockercoins 网络已经都创建了.:

注:一旦新的任务被指定给这个节点,Overlay 网络就会被按需创建。
在 swarm 集群上运行 docker 应用
概念解释:service
Docker1.12 swarm 引入了服务的概念,一个服务由多个任务组成,一个任务即一个运行的容器。
服务包括两种类型:
复制服务(replicated services):类似 k8s 中复制集的概念,保持一定数量的相同任务在集
群中运行;
全局服务(global services):类似 k8s 中 daemon 的概念,每个工作节点上运行一个。
发布服务:
在 manager 上执行如下命令:
下面我们可以使用之前 push 到本地镜像仓库的镜像启动服务, 以 centos:http 为例:
以复制服务类型运行服务
在 manager 上执行如下命令:

docker service create 命令创建一个service.
--name 标签命名 service 为 web1.
--replicas 标签来声明 1 个运行实体(即容器副本数)
注意, 我们启动的镜像名字 192.168.1.104:5000/centos:http 使用我们本地镜像仓库的镜像名
称, 这样当主机上没有这个镜像时, 会自动到本地镜像仓库拉取镜像.
使用 docker service ls 查看服务

dockerservice inspect 命令用户查看service 详细信息
使用 docker serviceps查看服务运行在哪个节点上

现在你可以用浏览器访问 http://192.168.1.104:8000 就能访问测试页

事实上, 你可以访问swarm集群中的所有节点 192.168.1.105、192.168.1.113的8000端口, 都
可以访问测试页。(注:将 firewall 防火墙默认区域设置为 trusted)

分页阅读: 1 2 3 4
【声明】:8090安全小组门户(https://www.8090-sec.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们:邮箱hack@ddos.kim,我们会在最短的时间内进行处理。