2017-11-21 4 views
0

Docker 허브의 this docker image을 사용하여 컨테이너가 실행중인 컴퓨터를 구성 할 수있는 가능성있는 게임 플레이를 실행하려고합니다. 도커를 통해 도커 호스트가 가능합니다.

는 예를 들어, 나는이 실행 :이 옵션으로

docker run --net="host" -v <path_inventory>:/inventory -v <path_playbook>:/playbook.yml williamyeh/ansible:ubuntu16.04 ansible-playbook -vvvv -i /inventory /playbook.yml 

을, 나는 localhost를 Ping 할 수 있으며, 재고 및 플레이 북은 모두 액세스 할 수 있습니다. 실행기가 각본에서 참조하는 하나

[executors] 
127.0.0.1 

[executors:vars] 
ansible_connection=local 
ansible_user=<my_user_in_docker_host> 
ansible_become=True 

그룹 :

명세는 로컬 접속을 사용하도록 구성된다.

제가 플레이 북이 루트로 연결하려고한다는 것을 알았습니다 (기본적으로 컨테이너에 연결할 때 얻는 것). 컨테이너를 실행할 때 -u을 지정하면 Ansible과 맞지 않는 것처럼 보입니다.

< 127.0.0.1> 사용자의 로컬 연결 수립 : 루트

... 사용할 수없는 모든 명령에 대해 불평 오류 다음에, 성공적인 로컬 연결 후를. 루트 사용자 나 비 루트 사용자가 모두 실행할 수 있다는 점을 감안하면 나에게 맞는 말이 아닙니다.

아이디어가 있으십니까?

답변

1

이 이미지는 다른 이미지의 기반 역할을하도록 설계되었으며 Dockerfile만을 사용하는 대신 이미지 요구 사항을 프로비저닝하는 방법으로 유용 할 수 있습니다.

은 고정 표시기 이미지의 문서에 명시되어 일부 특정 리눅스 배포판 (들)을 다른 소프트웨어 스택을 구성하기위한 기본 이미지로 주로 사용

. 고정 표시기에 대한 좋은 일이 격리하는 것입니다 다른 옵션을 사용하는 것보다 더 밝은 길에 CI 작업을 수행 할 수있는 기본 이미지로의

생각해 (VM의, 방랑을 ...) 계정

테이크 컨테이너에서 호스트를 제거 할 수 있으므로 컨테이너에서 호스트 파일에 도달 할 수 없습니다 (바인드하는 모든 볼륨 제외). 그렇지 않으면 보안 문제가 발생할 수 있습니다. See Here

관련 기준에 대한

+0

감사 : 내 유스 케이스는 조금 다르다 및 설명서는 그것을 명확히하는 데 도움이됩니다. 도커 컨테이너는 호스트 컴퓨터에서 파일을 수정하기위한 것이 아니지만 다른 호스트를 구성하려는 경우에도 도커를 사용하여 앱을 격리하는 것이 좋습니다. 내 경우에는 볼륨이 플레이 북에서 명령을 실행하기에 충분하지 않다는 가정하에 SSH localhost를 사용합니다. 이것은 나에게 좋은 연습/타협처럼 보입니다. 고맙습니다!. – dgulabs