对于 docker-machine 的理解以及在 docker-swarm 中使用 python 针对于 docker 的 SDK
环境搭建问题
在 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相关推荐
- Docker Machine搭建并加入节点
对于集群服务器来讲,要在每台机器上手动安装Docker是一件及其痛苦的事情,还好有Docker Machine这一工具,Docker三剑客中的一角. 一.Docker Machine介绍 这个工具已经 ...
- Docker Machine是什么
Docker Engine 在说Docker Machine之前,我们先说说Docker Engine,也就是人们嘴里边常说的"docker".Docker我们一般理解的,都是C/ ...
- Docker(五):Docker 三剑客之 Docker Machine
上篇文章Docker(四):Docker 三剑客之 Docker Compose 介绍了 Docker Compose,这篇文章我们来了解 Docker Machine . Docker Machin ...
- docker——三剑客之Docker Machine
Docker Machine是Docker官方三剑客项目之一,负责使用Docker的第一步,在多种平台上快速安装Docker环境. 它支持多种平台,让用户在很短时间内搭建一套Docker主机集群. M ...
- couchbase_适用于具有Couchbase和WildFly的多容器和多主机应用程序的Docker Machine,Swarm和Compose...
couchbase 该博客将说明如何使用Docker创建部署在多个主机上的多容器应用程序. 这将使用Docker Machine,Swarm和Compose实现. 是的,这三个工具一起使这个博客变得更 ...
- 适用于具有Couchbase和WildFly的多容器和多主机应用程序的Docker Machine,Swarm和Compose...
该博客将说明如何使用Docker创建部署在多个主机上的多容器应用程序. 这将使用Docker Machine,Swarm和Compose实现. 是的,所有这三个工具一起使此博客更加有趣! 该图说明了关 ...
- Docker集群管理之Docker Machine
http://www.csdn.net/article/2015-08-11/2825438 摘要:做为Docker容器集群管理三剑客之一的Docker Machine 大大简化了Docker主机部署 ...
- docker中使用Python镜像
1.docker中获得Python的镜像 docker pull 193.101.0.10:6666/zenap/rsync-python27-alpine:3.2 2.查看docker中的镜像 do ...
- centos7下安装docker(14安装docker machine)
为所有host安装和配置docker 之前我们手工安装了一个docker host: 1.安装https CA证书 2.添加GPG key 3.添加docker apt源 4.安装docker ...
最新文章
- [转]英语飙升的好方法
- Java Thread.join()详解
- UA MATH567 高维统计专题1 稀疏信号及其恢复6 随机设计矩阵下LASSO的估计误差
- 辅助驾驶等级_自动驾驶分为几级?我们离真正的自动驾驶还有多远?
- 关于mysql使用!=或者<>会导致索引失效问题的验证
- MFC 操作配置文件INI的方法
- c语言获取系统剩余内存_C语言编程中的“堆”和“栈”七大不同之处
- ios之Xcode工程中添加文件常用快捷键
- vmware虚拟机克隆CentOS7 出现的网络问题解决办法
- 电脑显示your pc android,新版DeX模式不再强调手机变PC,而是让Android融合PC
- 华为交换机路由器登陆密码详细操作
- python 随机产生一个整数 并猜测该数字小游戏
- 面试培训机构里的教师时,一分钟的自我介绍和五分钟的试讲如何安排?需要注意什么?
- ECM 手机MIC电路简单设计描述
- 关于线宽与PCB过孔铺铜的一点经验
- ORA-01400: cannot insert NULL into | 通过SQL链接服务器 往Oracle库的表中 插入默认值问题
- 2019-2020 10th BSUIR Open Programming Championship. Semifinal 补题
- java 农历_JAVA工具例大全--阴历(农历)信息 源代码
- Python程序设计 实验5:字符串的应用
- 香江野生动物园之行: (一)考拉
热门文章
- 原根(Primitive Root)
- AB PLC连接AB 继电器方法
- fastadmin的二次开发教程【简单搭建、多表格问题,API开发】
- 关于以太坊智能合约在项目实战过程中的设计及经验总结(1)
- mysql查询为null或者空字符串
- oracle vm virtualbox安装mac os,虚拟机VirtualBox安装MAC OS 10.12图文教程
- 基于NVIDIA Xavier的Socket Can项目开发
- 读懂才会用 : 带你见识 Redis 的 zset
- 阿里云服务器访问第三方,前端报错504 Gateway Time-out,时间太长出错
- 保证睡眠质量是造就完美人生的基础