ubuntu16.04配置docker远程访问
查看配置
systemctl show --property=FragmentPath docker
修改配置文件
sudo vim /lib/systemd/system/docker.servie
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:5678
重新加载配置文件,重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker (or sudo service docker restart)
测试Docker Remote API
curl http://vb:5678/info # vb是Docker宿主机的主机名
curl http://localhost:5678/info
curl http://127.0.0.1:5678/info
通过API管理Docker镜像
获取所有宿主机中所有的镜像
curl vb:5678/images/json | python3 -mjson.tool
使用python的json工具整理输出格式,方便查看
查看某一个镜像的信息
curl localhost:5678/images/a081f7d44c38b87ba89aaa5d62a6caed3b4e7e029462e7c39010e4d04aca2bb8/json | python3 -mjson.tool
在Docker Hub上查找镜像,并不是在本地查找
curl localhost:5678/images/search?term=busybox | python3 -mjson.tool
删除镜像
curl -v -X DELETE vb:5678/images/busybox
镜像历史
curl -v vb:5678/images/busybox/history
所以在build或者commi镜像的时候如果镜像命名是test/api_test这样,在使用API的过程中会遇到问题。
构建镜像
tar -zcf Dockerfile.tar.gz Dockerfile
curl -v -X POST -H "content-type: application/tar" --data-binary '@Dockerfile.tar.gz' localhost:5678/build?t=samplerepo
通过API管理Docker容器
查看正在运行的容器
curl -s localhost:5678/containers/json | python3 -mjson.tool
查看所有的容器,包括停止的容器
curl -s localhost:5678/containers/json?all=1 | python3 -mjson.tool
创建容器
curl -X POST -H "Content-Type: application/json" localhost://5678/containers/create?name=api_busybox -d '{"Image":"busybox", "Hostname":"busybox"}'
调用这个API会创建一个名称为api_busybox的容器,并返回容器的Id等信息。
启动容器
curl -v -X POST -H "Content-Type: application/json' localhost:5678/containers/api_busybox/start
在Docker1.10之前或许还需要加-d配置一些选项,1.10之后加-d选项会出错。
查看容器内的进程
curl localhost:5678/containers/api_busybox/top
导出容器
curl -o testExport.tar.gz localhost:5678/containers/api_export/export
重启容器
curl -v -X POST localhost:5678/containers/api_busybox/restart
停止容器
curl -v -X POST localhost:5678/containers/api_busybox/stop
停止容器
curl -v -X POST localhost:5678/containers/api_busybox/kill