一、什么是API
1. API具体是什么?
API这个词在维基百科里解释是这样的:应用程序接口(英语application programming interface,缩写作 API),又称为应用编程接口,就是软件系统不同组成部分衔接的约定。
简单理解就是,我们不同的安卓和系统的手机就要用不同的数据线充电,类似的,程序的接口也是如此。每个程序都有固定对外的标准接口,这个接口由开发这个程序的开发者定义的,你要想连接它们,那么就应该遵循它们的接口标准
2. 什么是REST
现在学习API 经常看到一个词叫REST,英文全称是Representational State Transfer,中文意思叫"表现层状态转化"
2.1. 什么是表现层?
表现层指的是资源的表现层,所谓"资源",就是网络上的一个具体信息。一个文本,一部电影,一个服务都可以算作一资源表现层的意思其实就是把"资源"具体呈现出来的形式。比如,我们可以通过一个URL连接下载视频,图片等!
2.2. 什么是状态转化?
简单理解就是对资源增删改查
GET、POST、PUT、DELETE(获取,新建,更新,删除)通过这基本的四种方法可以对网络上的资源进行一些状态转化操作
二、Docker API种类
- Docker Registry API (docker镜像仓库的api)
- Docker Hub API (Docker Hub API是用户管理操作的API)
- Docker Remote API (用于控制主机 Docker 服务端的 API)
Docker Remote API
Docker Remote API是由docker守护进程提供的,默认情况下,docker守护进程绑定到一个宿主机的嵌套字里,即unix:///var/run/run/docker.sock
Remote API 的基本操作
编辑/usr/lib/system/system/docker.service 文件,把 Docker 守护进程绑定到该宿主机的所有网络接口的 2375 端口上
ExecStart=/usr/bin/docker-current -d --selinu-enabled -H tcp://0.0.0.0:2375
# systemctl --system daemon-reload
通过 Docker 客户端命令的-H 标志来测试一下刚才的配置是否生效
# docker daemon -H unix:///var/run/docker.sock -H 0.0.0.0:2375
WARN[0000] /!\ DON'T BIND ON ANY IP ADDRESS WITHOUT setting
-tlsverify IF YOU DON'T KNOW WHAT YOU'RE DOING /!\
WARN[0000] devmapper: Usage of loopback devices is strongly discouraged for
production use. Please use `--storage-opt dm.thinpooldev` or use `man docker` to refer
to dm.thinpooldev section.
WARN[0000] devmapper: Base device already exists and has filesystem xfs on it.
User specified filesystem will be ignored.
INFO[0000] [graphdriver] using prior storage driver "devicemapper"
INFO[0000] Graph migration to content-addressability took 0.00 seconds
INFO[0000] Firewalld running: false
INFO[0000] Default bridge (docker0)is assigned with an IP address
172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address
INFO[0000] Loading containers: start.
.
INFO[0000] Loading containers: done.
INFO[0000] Daemon has completed initialization
INFO[0000] Docker daemon
commit=3999ccb-unsupported execdriver=native-0.2 graphdriver=devicemapper
version=1.10.3
INFO[0001] API listen on [::]:2375
INFO[0001] API listen on /var/run/docker.sock
# docker -H 127.0.0.1:2375 info
Containers: 1
Running: 1
Paused: 0
Stopped: 0
Images: 22
Server Version: 1.10.3
Storage Driver: devicemapper
Pool Name: docker-253:1-285241608-pool
Pool Blocksize: 65.54 kB
Base Device Size: 10.74 GB
Backing Filesystem: xfs
Data file: /dev/loop0
Metadata file: /dev/loop1
Data Space Used: 5.105 GB
Data Space Total: 107.4 GB
Data Space Available: 90.75 GB
Metadata Space Used: 10.23 MB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.137 GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Deferred Deletion Enabled: false
Deferred Deleted