CI/CD 빌드를 실행하는 데 사용하는 이미지가 있습니다 (GitLab CE 사용). 컨테이너가 파괴되기 때문에 내가 호스트 시스템에 정의 된 액세스 기계에 고정 표시기 기계 싶습니다, 그러나컨테이너 내에서 호스트 도커 - 머신에 액세스
eval "$(docker-machine env manager)"
sudo docker stack deploy --compose-file docker-stack.yml web
및 I : I는 컨테이너 내에서이 같은 내 애플 리케이션하고 뭔가를 배포하고 싶습니다 이미지에 액세스 세부 정보를 포함하고 싶지는 않습니다.
나는 호스트에 고정 표시기 기계를 만들고이를 컨테이너가 사용할 수 있도록 MACHINE_STORAGE_PATH
를 탑재 docker-machine
- 를 통해 원격 호스트 액세스 몇 가지
을 시도했습니다
- 콘테이너 내에서 수동으로 원격 도커 - 머신에 연결하고 을 마운트 된 볼륨과 동일하게 설정하십시오.
- 도커 소켓 장착
두 경우 모두 컴퓨터 저장 장치가 유지되는 것을 볼 수 있지만 새 컨테이너를 만들고 실행할 때마다 docker-machine ls
컴퓨터가 나열되지 않습니다. docker-machine ssh manager-1 -N -L 2376:localhost:2376
export DOCKER_HOST=:2376
DOCKER_HOST
- 전달을 통해 원격 시스템 고정 표시기 포트를 원격 호스트 액세스
기기 :
export DOCKER_TLS_VERIFY=1
및export DOCKER_CERT_PATH=/Users/me/.docker/machine/machines/manager-1
- 시험
docker info
,
이 나에게 error during connect: Get https://localhost:2376/v1.26/info: x509: certificate signed by unknown authority
나는 용기 내에서 원격 배포를 수행 할 수있는 방법에 대한 아이디어를 제공?
감사
편집 여기
시도하고 더 나은 시나리오를 전달하기위한 도면. 고정 표시기가 명령
docker run -v /var/run/docker.sock:/var/run/docker.sock <gitlab-image>
지금 당신이 실행할 수 있습니다 경우
나는 권고 된 것처럼'docker.sock'을 마운트하지 않을 것입니다. 정보는 https://raesene.github.io/blog/2016/03/06/The-Dangers-Of-Docker.sock/에있는이 기사를 참조하십시오. 큰 보안 구멍을 열었습니다. –
소켓에서 실행되는 유일한 컨테이너가 빌드 컨테이너 인 경우 위험이 많이 있다고 생각하십니까? – jaredcnance
일반적으로 컨테이너 내에서 컨테이너를 실행하고 싶지는 않습니다. 볼륨에 대한 액세스가 필요하다면 대신'--link' 또는'docker> = 1.12'를 사용하여 네트워크 오버레이를 생성해야합니다. 컨테이너를 사용하여 다른 컨테이너를 시작하는 것은 아무 문제가 없으며 호스트 시스템에서 시작하고 컨테이너 내부에서 시작하지 마십시오. 컨테이너로 컨테이너를 만드는 것은 시간이 지남에 따라 관리하기 어려운 패턴 일뿐입니다. –