샤워하다 문득, Docker도 Remote API가 있을까, 있을꺼야, 없을리가 없어라고 생각하고 찾아보았더니, Restful 형식으로 있다. 대박~… 이 의미는 원격에서 제어가 가능하고, 웹으로 관리페이지 하나 만들어서, 원격에서 container 핸들링 등을 할 수 있다는 의미다. 너무 좋아지려고 한다. ㅎ 그래서, docker를 설치하면, 기본적으로는 enable되지 있지 않지만, remote api를 열어보도록 한다.
Environment
Linux: Ubuntu 14.04
Docker: v1.5.0
IP( docker가 설치된 Server IP ): 192.168.0.11
$ sudo vi /etc/init/docker.conf
아래와 같이 추가하고, 저장하고 나온다.
DOCKER_OPTS=’-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock’
$ sudo service docker restart
나의 노트북(Win8)에서, Curl을 이용해서, Remote API로 Docker 접근하기
D:/> curl -X GET http://192.168.0.11:4243/images/json
output은 pretty하게 나오지는 않지만, pretty하게 정리하면 아래와 같이 나온다. 짜~잔… 감격… ^^
[
{
“Created”: 1428769336,
“Id”: “cf37bdca4c62d05f35e3889a654e0f646960fb1484f55107aba1b99196b3a9ae”,
“ParentId”: “5aa5bb09bfac6c5025c4fb848c75cbd54017724880207ded85d56aa0c6c42bca”,
“RepoTags”: [
“kevin/redis2:latest”
],
“Size”: 0,
“VirtualSize”: 211124743
},
{
“Created”: 1428768000,
“Id”: “1f27f7da1397fb81990f54ef1c882228587076946bf26b1ec2172c3008b95b3c”,
“ParentId”: “d0955f21bf24f5bfffd32d2d0bb669d0564701c271bc3dfc64cfc5adfdec2d07”,
“RepoTags”: [
“kevin/redis:init”
],
“Size”: 177,
“VirtualSize”: 188300733
},
{
“Created”: 1428754141,
“Id”: “b3fcce26a6d125634903cedd28e0d74c30a9e2c1e548cb266492e5b4dcc26d45”,
“ParentId”: “d0955f21bf24f5bfffd32d2d0bb669d0564701c271bc3dfc64cfc5adfdec2d07”,
“RepoTags”: [
“ubuntu:git”
],
“Size”: 149,
“VirtualSize”: 188300705
},
{
“Created”: 1426832207,
“Id”: “d0955f21bf24f5bfffd32d2d0bb669d0564701c271bc3dfc64cfc5adfdec2d07”,
“ParentId”: “9fec74352904baf5ab5237caa39a84b0af5c593dc7cc08839e2ba65193024507”,
“RepoTags”: [
“ubuntu:latest”,
“ubuntu:trusty”,
“ubuntu:trusty-20150320”,
“ubuntu:14.04”,
“ubuntu:14.04.2”
],
“Size”: 0,
“VirtualSize”: 188300556
},
{
“Created”: 1426832162,
“Id”: “9c5e4be642b799060baa07b826968128ff66d2ced86f6098f6d9f5845f2d35dd”,
“ParentId”: “72dffce15bf2df5afebfbe91515463a1629dc6a9233ede1346e80cd97da606ac”,
“RepoTags”: [
“ubuntu:precise”,
“ubuntu:precise-20150320”
],
“Size”: 0,
“VirtualSize”: 131886863
},
{
“Created”: 1420066679,
“Id”: “e45a5af57b00862e5ef5782a9925979a02ba2b12dff832fd0991335f4a11e5c5”,
“ParentId”: “31cbccb51277105ba3ae35ce33c22b69c9e3f1002e76e4c736a2e8ebff9d7b5d”,
“RepoTags”: [
“hello-world:latest”
],
“Size”: 0,
“VirtualSize”: 910
},
{
“Created”: 1401292614,
“Id”: “31fa814ba25ae3426f8710df7a48d567d4022527ef2c14964bb8bc45e653417c”,
“ParentId”: “a15f98c467482e15cae7bede2eccf45b698ee0ca5fd18ea3120c7c35e4f5e842”,
“RepoTags”: [
“training/webapp:latest”
],
“Size”: 0,
“VirtualSize”: 278804536
}
]
Reference
https://docs.docker.com/reference/api/docker_remote_api_v1.15/
http://www.virtuallyghetto.com/2014/07/quick-tip-how-to-enable-docker-remote-api.html