环境搭建问题

在 https://blog.csdn.net/Enjolras_fuu/article/details/89244113 中我们搭建了一个单机的 docker swarm环境, 退出这个集群之后,执行docker servise ls

(base) furuiyangdeMacBook-Pro:SwarmSense-IoT-Platform furuiyang$ docker service ls
Error response from daemon: This node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to swarm and try again.

这是因为当前的主机并不在这个集群中,比较方便的一种做法是把当前的 Machine CLI指向manager主机:

eval "$(docker-machine env manager)"

这时候再在当前终端执行 docker service ls :

(base) furuiyangdeMacBook-Pro:SwarmSense-IoT-Platform furuiyang$ docker service ls
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS

SDK 的使用

安装:

pip install docker

相关的文档: https://docker-py.readthedocs.io/en/stable/client.html

用到哪里再来补充吧 … 先不按顺序写写最近用到的

创建客户端

# test docker SDK for python
import docker
# client = docker.from_env()
client = docker.DockerClient(base_url='unix://var/run/docker.sock')
print('client1---> ', client)
# client1--->  <docker.client.DockerClient object at 0x103d5c518>

查看镜像

import docker
# client = docker.DockerClient(base_url='unix://var/run/docker.sock')
client = docker.from_env()
# 查看当前的镜像
images = client.images.list()
print(images)  # 返回一个镜像列表对象

运行结果:

终端查看镜像:

运行起一个镜像

import docker
client = docker.from_env()# 运行起一个镜像 返回结果 感觉就像一个轻量级的进程
res = client.containers.run("ubuntu:latest", "echo hello world")
print(res)
# b'hello world\n'

查看正在运行的容器对象

import docker
client = docker.from_env()# 查看正在运行的容器
containers = client.containers.list()
print(containers)# 停止正在运行的容器
container = containers[0]
container.stop()# 启动
container.start()# 重启
container.restart()# 暂停
container.pause()# 暂停后继续
container.unpause()# 查看容器状态
status = container.status# 查看容器的 id  对应于 CONTAINER ID
id = container.id# 容器名称
name = container.name# 标签
lbs = container.labels# 查看容器的镜像来源
image = container.image  # image: <Image: 'ubuntu:18.04', 'ubuntu:latest'># 查看运行时产生的日志
logs = container.logs()
print(logs)
for line in container.logs(stream=True):print(line.strip())

针对于服务的SDK

eval "$(docker-machine env manager)"  # 注意如果是 docker-machine 首先在终端执行这一句

查看当前运行的服务

# 查看当前运行的服务
ss = client.services.list()

创建服务

# for example
docker service create --name etcd \--network swarm_network \--publish 2380 --publish 2379:2379 \ quay.io/coreos/etcd:latest etcd \-advertise-client-urls http://etcd:2379 \-listen-client-urls http://0.0.0.0:2379

对于 docker-machine 的理解以及在 docker-swarm 中使用 python 针对于 docker 的 SDK相关推荐

  1. Docker Machine搭建并加入节点

    对于集群服务器来讲,要在每台机器上手动安装Docker是一件及其痛苦的事情,还好有Docker Machine这一工具,Docker三剑客中的一角. 一.Docker Machine介绍 这个工具已经 ...

  2. Docker Machine是什么

    Docker Engine 在说Docker Machine之前,我们先说说Docker Engine,也就是人们嘴里边常说的"docker".Docker我们一般理解的,都是C/ ...

  3. Docker(五):Docker 三剑客之 Docker Machine

    上篇文章Docker(四):Docker 三剑客之 Docker Compose 介绍了 Docker Compose,这篇文章我们来了解 Docker Machine . Docker Machin ...

  4. docker——三剑客之Docker Machine

    Docker Machine是Docker官方三剑客项目之一,负责使用Docker的第一步,在多种平台上快速安装Docker环境. 它支持多种平台,让用户在很短时间内搭建一套Docker主机集群. M ...

  5. couchbase_适用于具有Couchbase和WildFly的多容器和多主机应用程序的Docker Machine,Swarm和Compose...

    couchbase 该博客将说明如何使用Docker创建部署在多个主机上的多容器应用程序. 这将使用Docker Machine,Swarm和Compose实现. 是的,这三个工具一起使这个博客变得更 ...

  6. 适用于具有Couchbase和WildFly的多容器和多主机应用程序的Docker Machine,Swarm和Compose...

    该博客将说明如何使用Docker创建部署在多个主机上的多容器应用程序. 这将使用Docker Machine,Swarm和Compose实现. 是的,所有这三个工具一起使此博客更加有趣! 该图说明了关 ...

  7. Docker集群管理之Docker Machine

    http://www.csdn.net/article/2015-08-11/2825438 摘要:做为Docker容器集群管理三剑客之一的Docker Machine 大大简化了Docker主机部署 ...

  8. docker中使用Python镜像

    1.docker中获得Python的镜像 docker pull 193.101.0.10:6666/zenap/rsync-python27-alpine:3.2 2.查看docker中的镜像 do ...

  9. centos7下安装docker(14安装docker machine​)

    为所有host安装和配置docker 之前我们手工安装了一个docker host: 1.安装https CA证书 2.添加GPG key 3.添加docker apt源 4.安装docker     ...

最新文章

  1. [转]英语飙升的好方法
  2. Java Thread.join()详解
  3. UA MATH567 高维统计专题1 稀疏信号及其恢复6 随机设计矩阵下LASSO的估计误差
  4. 辅助驾驶等级_自动驾驶分为几级?我们离真正的自动驾驶还有多远?
  5. 关于mysql使用!=或者<>会导致索引失效问题的验证
  6. MFC 操作配置文件INI的方法
  7. c语言获取系统剩余内存_C语言编程中的“堆”和“栈”七大不同之处
  8. ios之Xcode工程中添加文件常用快捷键
  9. vmware虚拟机克隆CentOS7 出现的网络问题解决办法
  10. 电脑显示your pc android,新版DeX模式不再强调手机变PC,而是让Android融合PC
  11. 华为交换机路由器登陆密码详细操作
  12. python 随机产生一个整数 并猜测该数字小游戏
  13. 面试培训机构里的教师时,一分钟的自我介绍和五分钟的试讲如何安排?需要注意什么?
  14. ECM 手机MIC电路简单设计描述
  15. 关于线宽与PCB过孔铺铜的一点经验
  16. ORA-01400: cannot insert NULL into | 通过SQL链接服务器 往Oracle库的表中 插入默认值问题
  17. 2019-2020 10th BSUIR Open Programming Championship. Semifinal 补题
  18. java 农历_JAVA工具例大全--阴历(农历)信息 源代码
  19. Python程序设计 实验5:字符串的应用
  20. 香江野生动物园之行: (一)考拉

热门文章

  1. 原根(Primitive Root)
  2. AB PLC连接AB 继电器方法
  3. fastadmin的二次开发教程【简单搭建、多表格问题,API开发】
  4. 关于以太坊智能合约在项目实战过程中的设计及经验总结(1)
  5. mysql查询为null或者空字符串
  6. oracle vm virtualbox安装mac os,虚拟机VirtualBox安装MAC OS 10.12图文教程
  7. 基于NVIDIA Xavier的Socket Can项目开发
  8. 读懂才会用 : 带你见识 Redis 的 zset
  9. 阿里云服务器访问第三方,前端报错504 Gateway Time-out,时间太长出错
  10. 保证睡眠质量是造就完美人生的基础