당신이 달성 할 수 Docker Remote API를 사용하여.
우선 docker 데몬이 실행되는 방식을 조정하십시오.
curl -X POST -H "Content-Type: application/json" http://localhost:4243/containers/create?name=my_first_container -d '
{
"Name": "dtest2",
"AttachStdin": "false",
"AttachStdout": "false",
"AttachStderr": "false",
"Tty": "false",
"OpenStdin": "false",
"StdinOnce": "false",
"Cmd":["/bin/bash", "-c", "echo Starting;sleep 20;echo Stopping"],
"Image": "ubuntu",
"DisableNetwork": "false"
}
'
에주의를 : 당신이 그것을 실행하지 않고 컨테이너를 만들 수 /containers/create
엔드 포인트를 사용할 수 있습니다, 지금
sudo sh -c "echo 'DOCKER_OPTS=\"-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock\"' > /etc/default/docker"
: 그것은 기본 유닉스 소켓에 추가하여 포트 4243에서 HTTP 요청을 청취하기 위해 구성 curl request url에 추가 된 ?name=my_first_container
매개 변수에 추가합니다. 이것이 컨테이너의 이름입니다.
사이드 노트 - HTTP 인터페이스를 추가하지 않고도 동일하게 수행 할 수 있지만 간단한 컬 POST 요청을 사용하여 솔루션을 표시하는 것이 더 쉬워 보입니다.
http 인터페이스를 독서실 (또는 Docker 커뮤니티에서 이미 논의한 이유 때문에 localhost도 포함)로 추가하지 않고 UNIX 소켓과 동일한 명령이 있습니까? –
@MarshallAnschutz에는 [보안 방법] (http://blog.james-carr.org/2013/10/30/securing-dockers-remote-api/) Docker의 http 인터페이스가 있습니다. 유닉스 소켓과 직접 대화하고자한다면'echo -e "를 실행하여 HTTP 요청을 보낼 수있다. POST/containers/create? name = dtest8 HTTP/1.1 ......."| nc -U/var/run/docker.sock' –
이 작업을 제대로 수행하기 위해 파이썬 인터페이스에 기대고 있습니다. 그것은 이것을 관리하는 가장 제정신 인 방법 인 것처럼 보입니다. –