| 트래비스 CI | 릴리스 |
|---|---|
XHYVE Native OS X 하이퍼 바이저 용 Libmachine 드라이버 플러그인
Nathanleclaire/Docker-Machine-Xhyve에서 상속 된 마스터 브랜치. 감사합니다 @nathanleclaire :)
문제 나 풀 수감이있는 경우이 저장소에 게시되기를 원합니다.

Libmachine 플러그인 모델을 사용하는 Docker-Machine-Driver-Xhyve.
이 저장소 문제를 Docker/Machine, Kubernetes/Minikube 및 Minishift/Minishift에 게시하지 마십시오.
Docker-Machine, Minikube 또는 Minishift의 개발을 방해 할 것입니다.
의심의 여지가 있다면이 저장소 문제에 게시하십시오.
Docker-machine
미니 큐브
Minishift
홈브류/맥주 사용 :
$ brew install docker-machine-driver-xhyve
# docker-machine-driver-xhyve need root owner and uid
$ sudo chown root:wheel $( brew --prefix ) /opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
$ sudo chmod u+s $( brew --prefix ) /opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve make 와 함께 go 하십시오.
QCOW2 디스크 이미지 형식을 지원하려면 Mirage/OCAML-QCOW를 설치해야합니다. Docker/Hyperkit#Building을 참조하십시오.
# Need Go 1.5 vendoring support
$ export GO15VENDOREXPERIMENT=1
$ go get -u -d github.com/zchee/docker-machine-driver-xhyve
$ cd $GOPATH /src/github.com/zchee/docker-machine-driver-xhyve
# Install qcow-format for qcow2 disk image format
$ brew install opam libev
$ opam init
$ eval ` opam config env `
$ opam install uri qcow-format io-page.1.6.1 conf-libev
# Install docker-machine-driver-xhyve binary into /usr/local/bin
$ make install
# docker-machine-driver-xhyve need root owner and uid
$ sudo chown root:wheel /usr/local/bin/docker-machine-driver-xhyve
$ sudo chmod u+s /usr/local/bin/docker-machine-driver-xhyve우리는 종속성 관리에 Glide를 사용합니다.
$ go get github.com/Masterminds/glide 글라이드 바이너리를 $GOPATH/bin 에 설치합니다.
의존성 업데이트
작업에 종속성을 변경 해야하는 경우 글라이드 구성을 업데이트해야합니다.
glide.lock 삭제하십시오. LOCK 및 RECREATE make vendor 실행하여 공급 업체 디렉토리를 재창조하십시오. Glide는 잠금 파일이 없다는 것을 인식하고 필요한 종속성을 다시 계산합니다.glide.yaml 및 glide.lock 파일을 확인하십시오. 참고 : 경우에 따라 ~/. 글라이드/캐시 아래에있는 글라이드 캐시가 손상 될 수 있습니다. make vendor 중에 글라이드 오류가 표시되면 glide cc 통해 Glide 캐시를 지울 수 있습니다.
| 깃발 이름 | 환경 변수 | 유형 | 기본 |
|---|---|---|---|
--xhyve-boot2docker-url | XHYVE_BOOT2DOCKER_URL | 끈 | $HOME/.docker/machine/cache/boot2docker.iso |
--xhyve-cpu-count | XHYVE_CPU_COUNT | int | 1 |
--xhyve-memory-size | XHYVE_MEMORY_SIZE | int | 1024 |
--xhyve-disk-size | XHYVE_DISK_SIZE | int | 20000 |
--xhyve-uuid | XHYVE_UUID | int | '' |
--xhyve-boot-cmd | XHYVE_BOOT_CMD | 끈 | automated_script.md를 참조하십시오 |
--xhyve-boot-kernel | XHYVE_BOOT_KERNEL | 끈 | '' |
--xhyve-boot-initrd | XHYVE_BOOT_INITRD | 끈 | '' |
--xhyve-qcow2 | XHYVE_QCOW2 | 부 | false |
--xhyve-virtio-9p | XHYVE_VIRTIO_9P | 부 | false |
--xhyve-experimental-nfs-share | XHYVE_EXPERIMENTAL_NFS_SHARE | 끈 | 게스트 내부에서 공유 할 호스트 폴더로가는 경로 |
--xhyve-experimental-nfs-share-root | XHYVE_EXPERIMENTAL_NFS_SHARE_ROOT | 끈 | NFS 주식이 장착 될 루트 경로 |
--xhyve-boot2docker-url Boot2Docker 이미지의 URL (경로).
기본적으로 캐시 된 ISO 파일 경로를 사용하십시오.
--xhyve-cpu-count CPU를 사용할 CPU 수는 VM을 작성합니다.
세트 -1 인 경우 현재 프로세스에서 사용할 수있는 논리 CPU를 사용하십시오.
--xhyve-memory-size손님을위한 기억의 크기.
--xhyve-disk-size게스트를위한 디스크 크기 (MB).
--xhyve-uuid 기계의 UUID.
기본적으로 무작위 UUID를 생성하고 사용하십시오. xhyve/uuid.go를 참조하십시오
--xhyve-boot-cmd xhyve kexec 명령을 부팅합니다.
기본적으로 사용하십시오
loglevel=3 user=docker console=ttyS0 console=tty0 noembed nomodeset norestore waitusb=10 base host=boot2docker
--xhyve-boot-kernel 커널 파일 경로를 부팅합니다.
기본적으로 (vmlinu[xz]|bzImage)[d]* 사용하여 파일 경로를 자동으로 구문 분석합니다.
--xhyve-boot-initrd 부팅 시작 파일 경로.
기본적으로 initrd 가 파일 경로를 자동으로 구문 분석합니다.
--xhyve-qcow2 qcow2 디스크 형식을 사용하십시오.
Minikube를 사용하는 경우 CONFIG_VIRTIO_BLK=y 지원은 V0.0.6 버전으로 Minikube-ISO에 포함됩니다.
--xhyve-rawdisk스토리지에 간단한 '원시 디스크'형식과 Virtio-Blk 드라이버를 사용하십시오. 이는 데이터 내구성의 잠재적 비용으로 I/O 집약적 응용 프로그램의 경우 상당히 빠를 수 있습니다.
--xhyve-virtio-9p virtio-9p 폴더 공유를 활성화하십시오.
Docker-Machine을 사용하는 경우 CONFIG_NET_9P=y 지원은 버전 v1.10.2 기준으로 Boot2Docker에 포함됩니다.
--xhyve-experimental-nfs-share /path/to/host/folder --xhyve-experimental-nfs-share-root (기본값 /xhyve-nfsshares )에 의해 지정된 경로의 게스트 내부의 path/to/host/folder 공유.
여러 번 지정할 수 있습니다
--xhyve-experimental-nfs-share-root /path 기본적으로 NFS 주식은 /xhyve-nfsshares 의 게스트에 장착됩니다.
--xhyve-experimental-nfs-share-root /path /path 하여이 기본값을 변경할 수 있습니다.
현재 docker-machine-driver-xhyve dhcpd_leases 정리하지 않습니다.
좋다,
# Running xhyve vm. for example, assign 192.168.64.1
$ docker-machine create --driver xhyve xhyve-test
|
# Send ACPI signal(poweroff) signal over the ssh
$ docker-machine rm xhyve-test
|
# Re-create xhyve vm, will assign 192.168.64.2
docker-machine create --driver xhyve xhyve-test 192.168.64에 할당됩니다. 2 . 192.168.64에 할당 된 다른 VM을 생성하는 경우. 3 .
그러나 192.168.64. 1은 누구도 사용하지 않습니다.
vmnet.framework 아래 파일을 기반으로 IP를 결정한 것 같습니다.
/var/db/dhcpd_leases/Library/Preferences/SystemConfiguration/com.apple.vmnet.plist 따라서 IP 데이터베이스를 재설정하려면 수동으로 제거하십시오. 그러나 매우 위험합니다 .
vmnet.framework 공유 순 주소 범위는 192.168.64.1 ~ 192.168.64.255 입니다. 255 VM을 만들 수 있습니다.
vmnet.framework 이해 한 후에는 정리 프로세스를 구현하겠습니다.
Mac OS X 10.11.4 빌드 15E27e 에는 Hypervisor.framework 버그 가 있습니다.
이것은 애플의 버그입니다.
그러나 Apple은 고정 된 빌드 15E33e 입니다.
빌드 15E27E에서 docker-machine-driver-xhyve 시작하면 표시됩니다.
open : no such file or directory 그리고 원래 xhyve 에서
hv_vm_create failed보다
다른 사용자 (저를 제외하고)가 XHYVE를 시작할 수 있는지 매우 염려합니다.
따라서 XHYVE 사용 Docker-Machine-Driver-Xhyve를 시작할 수 있다면이 문제 스레드에 보고서를 게시 할 수 있습니까?
#18
Vagrant 에 의해 시작된 MacOS가 구축 될 수는 있지만 하이퍼 바이저를 시작할 수는 없습니다.
CPU 정보를 숨기려면 백엔드 VM (VirtualBox, VMware, Parallels ...)이 원인 일 것입니다.
VMware의 경우
$ system_profiler SPHardwareDataType
system_profiler[458:1817] platformPluginDictionary: Can ' t get X86PlatformPlugin, return value 0
system_profiler[458:1817] platformPluginDictionary: Can ' t get X86PlatformPlugin, return value 0
Hardware:
Hardware Overview:
Model Name: Mac
Model Identifier: VMware7,1
// Where is " Processor Name: " field ?
Processor Speed: 2.19 GHz
Number of Processors: 1
Total Number of Cores: 1
L2 Cache: 256 KB
L3 Cache: 6 MB
Memory: 2 GB
Boot ROM Version: VMW71.00V.0.B64.1505060256
SMC Version (system): 1.16f8
Serial Number (system): ************
Hardware UUID: ******** - **** - **** - **** - ************
$ git clone https://github.com/mist64/xhyve && cd xhyve
$ make
$ ./xhyverun.sh
vmx_init: processor not supported by Hypervisor.framework
Unable to create VM (-85377018)