OS X에서는 다음을 사용해 보았습니다.링곤시작 시 쉘 스크립트를 실행하십시오. ~/desktop/_admin/boot/bootdocker.sh 파일이 있습니다.
#!/bin/bash
boot2docker up
export DOCKER_HOST=tcp://192.177.59.103:2475
내 질문은 다음 중 하나를 사용하여 명령줄에서 스크립트를 실행하는 경우입니다.
$bash bootdocker.sh
$./bootdocker.sh
$sh bootdocker.sh
첫 번째 명령은 실행하지만 DOCKER_HOST 변수를 내보내는 두 번째 명령은 실행하지 않습니다.
내가 저지르고 있는 실수를 누가 볼 수 있나요?
답변1
생성하는 모든 쉘에 대해 이를 설정 하려면 이를 또는 $DOCKER_HOST
에 병합해야 합니다 ..bashrc
.bash_profile
노트:하위 프로세스가 상위 프로세스의 환경을 향상시킬 수 없기 때문에 당신이 하려는 일은 결코 작동하지 않을 것입니다.
boot2docker
다음과 같이 사용할 수 있습니다.
$ eval $(boot2docker shellinit)
shellinit
to 동사 는 boot2docker
v1.2.0의 새로운 동사이며 setup 에 사용됩니다 $DOCKER_HOST
. 이를 그대로 실행하면 다음과 같은 출력이 생성됩니다.
$ boot2docker shellinit
export DOCKER_HOST=tcp://192.168.59.103:2375
답변2
두 번째 명령은 올바르게 실행되지만 스크립트가 하위 쉘(하위 프로세스)에서 실행되므로 실행 후 반환된 상위 쉘은 환경 변수를 상속하지 않습니다.
답변3
var를 얻으려면 $DOCKER_HOST
다음을 실행해야 합니다.
. ./bootdocker.sh
그건
.
"입력할 때 이 파일 사용"을 의미하는 점./bootdocker.sh
파일은 로컬에서 검색됩니다.