对于 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 ...
最新文章
- python解释器是什么-python解释器都有什么
- HDU 5832——A water problem 2016CCPC网络赛1001
- Java并发AtomicIntegerArray类
- 【iCore4 双核心板_ARM】例程二十九:SD_IAP_FPGA实验——更新升级FPGA
- 为什么「margin:auto」可以让块级元素水平居中?
- hihoCoder #1014 : Trie树 [ Trie ]
- 动态路由协议:华为路由器配置RIP协议
- 儿童讲堂 - 量词的解释
- 地下城与勇士正在自动连接频道服务器,DNF爆满频道服务器连接失败解决方法分享...
- MySQL 替换手机号码中间4位为星号显示
- 五子棋对弈(Socket--【服务器】--联机)
- INFOR WMS仓储管理系统里常用表说明
- oracle中如何转换成数字,如何在Oracle中实现数字进制转换完全版?
- linux自动启动 oracle
- 基于springboot_+java古诗词分享数字化平台
- python社区发现对gml文件的分析,用Python将gml文件中边的信息输出为csv(或者txt)格式...
- 全球及中国硅原子力显微镜探针行业规划展望及未来趋势研究报告2021-2027年版
- java毕业设计高校体育场馆预约管理系统设计与实现mybatis+源码+调试部署+系统+数据库+lw
- 详细对比DRAM、Flash和DDR技术 2020-11-19
- lua文件迁移小工具(编辑器下直接使用,将.lua文件变成定制的AB包文件)