2016-07-03 5 views
1

방금 ​​Docker로 장난하기 시작했고 dockerfile이 wi-fi 또는 bluetooth를 끄는 것과 같은 시스템 설정과 상호 작용할 수 있는지 궁금합니다. 지금까지 내가 아는 바에 따르면, dockerfiles는 어디에 있든 상관없이 동일한 작업을 수행해야합니다. 그래서 어떻게 다른 OS에서 이런 식으로 일반화 할 수 있습니까? 이 경우 if-statement가 필요하지 않습니까? 예를 들어 Linux에서 wi-fi를 끄는 터미널 명령은 Windows에서 다를 수 있으므로 OS 도커가 실행되고 있는지 확인해야하며이 도커 파일을 실행하는 컴퓨터에 블루투스가 있는지 여부도 확인할 수 있어야합니다.dockerfile이 시스템 설정과 상호 작용할 수 있습니까?

+0

이 질문은 실제로 도커에 관한 것이 아닙니다. Docker는 응용 프로그램을 배포하는 수단입니다. 이 작업을 수행하기 위해 스크립트를 작성하는 방법에 대해 생각한 다음 고정 된 컨테이너로 마무리하십시오. – stacksonstacks

+0

@stacksonstacks 왜 컨테이너에 포장합니까? – ninesalt

+0

Dockerfiles는 컨테이너 환경을 구축하기위한 것입니다. 그들의 명령은 빌드시에 실행됩니다. dockerfile을 작성하여 호스트의 블루투스 설정을 변경한다고 가정 해 봅시다. 컨테이너가 결국이 이미지에서 실행될 때 호스트 설정이 변경되었을 수 있습니다. 따라서 런타임에 컨테이너 내에서이 변경 작업을 수행하려고합니다. – stacksonstacks

답변

1

도커 컨테이너 안에있는 OS에 따라 dockerfile 명령을 지정하십시오. centos 기초가 있다고 가정 해 봅시다. yum을 사용하여 물건을 설치하십시오. 데비안 기반이라면 apt-get이 될 것입니다.

+0

알겠습니다 컨테이너가 호스트 컴퓨터의 설정과 상호 작용하려면 어떻게해야할까요? 그래서 Windows 컴퓨터가 예를 들어 우분투를 사용하는 컨테이너를 실행한다고 가정합니다. – ninesalt

+1

Docker 컨테이너는 호스트 컴퓨터 설정을 수정할 수 없습니다. 호스트 컴퓨터 용 컨테이너 포트를 노출하여 사용할 수 있습니다. –

1

당신이 할 수있는 최선의 방법은 컨테이너가 동작을 수행해야한다는 것을 나타내는 "신호"를 호스트 컴퓨터에 보내도록하는 것이라고 생각합니다.

예를 들어 컨테이너는 호스트 시스템이 볼 볼륨 매핑 된 디렉토리에 파일을 배치합니다. 그런 다음 작업을 수행하기 위해 자체 논리를 실행하는 것은 호스트 시스템에 달려 있습니다.

즉, 컨테이너는 호스트 시스템이 실행되는 방식에 대한 정보를 잊어 버려야합니다.

관련 문제