2016-10-28 2 views
2

로컬 스크립트 파일을 원격 호스트에 복사하고 그 중 하나를 실행하고 싶습니다. 로컬 호스트에 나는이 명령을 사용합니다 :일반 API와 동일한 방식으로 도커 원격 API를 사용할 수 있습니까?

docker run -d python tail -f /dev/null 
docker cp ./ <id>:/usr/local/bin/ 
docker exec <id> python /usr/local/bin/script.py 

내가 원격 시스템

공식 사이트 suggests 컬을 사용하기의 추가 IP를 지정 명령 및 포트를 추가하고 싶습니다. 도커 클라이언트는 list이지만 모두 프로그래밍 방식으로 사용됩니다.

콘솔에서 명령을 실행하거나 .bat 파일에 넣는 것을 선호합니다. 세 가지 명령을 실행하기 위해 일부 언어로 프로젝트를 컬 (curl)/설정 (set)하여 복잡성을 추가로 높이는 이유는 무엇입니까? docker-toolbox는 원격 호스트에서 명령을 실행할 수 있습니까?

답변

1

docker 명령 줄은 로컬 엔진과 동일한 방법으로 원격 Docker 엔진에 대해 작동 할 수 있습니다. 환경 변수를 사용하여 연결해야하는 API의 세부 정보를 지정합니다.

docker-machine 랩이를 깔끔하게 env 명령,하지만 당신은 이러한 변수를 설정하여 일반 docker CLI로 작업을 수행 할 수 있습니다

DOCKER_HOST=tcp://192.168.99.101:2376 
DOCKER_CERT_PATH=/Users/nathanleclaire/.docker/machines/.client 
DOCKER_TLS_VERIFY=1 

를 자신의 원격 호스트 주소와 인증서 표시를 사용.

기본적으로 Docker Engine API는 원격 클라이언트에 노출되어 있지 않으므로 구성해야합니다. Using TLS with the Docker Engine이 사용자에게 어떻게 표시되는지 알려줍니다.

+0

내가 암호화없이 그 서버에 'DOCKER_OPTS = '설정 - H의 TCP를 : //0.0.0.0 : 4243 -H 유닉스 : /// var에/실행/docker.sock'' HTTP ://www.virtuallyghetto.com/2014/07/quick-tip-how-to-enable-docker-remote-api.html Windows에서 환경 변수'DOCKER_HOST'을 (를)'tcp : //로 설정했습니다. my.ip.address : port'를 실행하고 도구 상자를 다시 시작했습니다. 시작할 때 "docker는 기본 컴퓨터 인 ip 192.168.99.100을 사용하도록 구성되었습니다"라는 내용을 인쇄합니다. 명령은 로컬 인스턴스에서 실행됩니다. – user2136963

+0

도구 상자 터미널은 자체 사용자 세션에서 실행되므로 시스템 변수를 설정하거나 도구 상자 터미널에서 환경 변수를 설정해야합니다. –