Crear y administrar máquinas virtuales alpinas livianas en macOS con:
? Reenvío de puertos sin costura
Intercambio automático de archivos
? Redes puentes
emulación AARCH64 y X86_64

El objetivo de este proyecto es permitir a los usuarios de MacOS:
macpine está destinado a su uso en macOS modernos. El soporte para versiones más antiguas de MacOS y otros sistemas operativos puede variar.
brew install macpine # installs `alpine` command and `qemu` dependency automatically Descargue la última versión binaria para su sistema y agréguela a su $PATH moviéndola a EG /usr/local/bin/ ::
arch= " $( [ ` uname -m ` = ' x86_64 ' ] && echo ' amd64 ' || echo ' arm64 ' ) " # detect architecture
wget " https://github.com/beringresearch/macpine/releases/latest/download/alpine_darwin_ $arch "
mv " alpine_darwin_ $arch " alpine
sudo chmod +x alpine
sudo mv alpine /usr/local/bin/
# export PATH="$PATH:/usr/local/bin"MacPine depende de QEMU> = 7.22.0:
brew install qemu También puede instalar macpine a través de MacPorts:
sudo port install macpine Construir desde la fuente requiere un compilador go de trabajo, y ejecutar requiere qemu :
brew install go qemu
git clone https://github.com/beringresearch/macpine
cd macpine
make # compiles the project into a local bin/ directory
make install # installs binaries to /usr/local/bin
# PREFIX=/some/other/path make install installs to /some/other/pathPara crear e iniciar una nueva instancia:
alpine launch # launches with default parameters
alpine launch -a aarch64 # create an aarch64 instance
alpine launch -d 10G -c 4 -m 2048 # create an instance with a 10GB disk, 4 cpus, and 2GB of RAM
alpine launch -h # view all configuration options and defaultsInstancia de acceso a través de SSH:
alpine launch -s 22 # launch an instance and expose SSH port to host port 22
alpine ssh instance-name # attach shell to instance (replace `instance-name` as appropriate)Exponer puertos de instancia adicionales al host:
# launch an instance, expose SSH to host port 2022 and forward host ports 8888 and 5432 to instance ports 8888 and 5432
alpine launch -s 2022 -p 8888,5432
# launch an instance, expose SSH to host port 8022, forward host port 8081 to instance port 8082, and forward
# host port 8083 to instance port 8083
alpine launch -s 8022 -p 8081:8082,8083
# launch an instance, expose SSH to host port 9022, forward host port 9091 UDP to instance port 9091 UDP,
# and forward host port 9092 UDP to instance port 9093 UDP
alpine launch -s 9023 -p 9091u,9092:9093u Las instancias se pueden empaquetar fácilmente para una copia de seguridad o compartir como archivos .tar.gz :
alpine list
NAME STATUS SSH PORTS ARCH PID TAGS
cheerful-result Running 2022 aarch64 26568
glittering-swing Running 3022 x86_64 57206 emulation,intelalpine publish cheerful-result Esto creará un archivo cheerful-result.tar.gz que se puede importar como:
# alpine delete cheerful-result
alpine import cheerful-result.tar.gzVea todos los documentos para obtener más información:
Create, control, and connect to Alpine instances.
Usage:
alpine [command]
Available Commands:
completion Generate shell autocompletions.
delete Delete instances.
edit Edit instance configurations.
exec execute a command on an instance over ssh.
help Help about any command
import Imports an instance archived with `alpine publish`.
info Display information about instances.
launch Create and start an instance.
list List instances.
pause Pause instances.
publish Publish instances.
rename Rename an instance.
restart Stop and start instances.
resume Unpause instances.
ssh Attach an interactive shell to an instance via ssh.
start Start instances.
stop Stop instances.
tag Add or remove tags from an instance.
Flags:
-h, --help help for alpine
Use "alpine [command] --help" for more information about a command. Múltiples instancias en un comando: algunos comandos ( delete , edit , info , pause , publish , restart , resume , start , stop ) aceptar nombres de múltiples instancias y repetirán la operación sobre cada instancia nombrada única una vez.
Etiquetas: Usando alpine tag , se pueden etiquetar instancias; Las etiquetas se pueden usar en comandos de múltiples instancias (ver arriba), por ejemplo, alpine start +foobar comenzará todas las instancias que se han etiquetado con foobar con alpine tag instance-name foobar . Tenga en cuenta que la etiqueta launchctl-autostart se usa para instancias de inicio automático en el inicio de sesión.
Shell AutoCompletion: los archivos de finalización del comando de shell (instalados automáticamente con brew install macpine ) se pueden generar con alpine completion [bash|zsh|fish|powershell] . Consulte alpine completion -h o la documentación de finalización para obtener más información.