container
A tool for creating and running Linux containers using lightweight virtual machines on a Mac. It is written in Swift, and optimized for Apple silicon.
File Explorer
- 01-bug.yml
- 02-feature.yml
- config.yml
- common.yml
- docs-release.yml
- merge-build.yml
- pr-build.yml
- pr-coverage-comment.yml
- pr-label-analysis.yml
- pr-label-apply.yml
- release.yml
- dependabot.yml
- labeler.yml
- pull_request_template.md
- Containerization-Logo.png
- functional-model-light.svg
- landing-movie.gif
- container-system-config-tutorial.md
- start-here.md
- bug-report-how-to.md
- command-reference.md
- container-inspection.md
- container-machine.md
- container-system-config.md
- host-integration.md
- how-to.md
- logs.md
- multiplatform-images.md
- networking.md
- resource-usage.md
- runtime-configuration.md
- shell-completions.md
- technical-overview.md
- ulimits.md
- volumes.md
- Dockerfile
- README.md
- container-header-style.toml
- ensure-container-stopped.sh
- ensure-hawkeye-exists.sh
- install-hawkeye.sh
- install-init.sh
- license-header.txt
- make-docs.sh
- pre-commit.fmt
- uninstall-container.sh
- update-container.sh
- container-network-vmnet.entitlements
- container-runtime-linux.entitlements
- APIServer+Start.swift
- APIServer.swift
- ContainerDNSHandler.swift
- LocalhostDNSHandler.swift
- AuditToken.h
- AuditToken.c
- ContainerCLI.swift
- BuildAPI+Extensions.swift
- Builder.grpc.swift
- Builder.pb.swift
- Builder.swift
- BuildFile.swift
- BuildFSSync.swift
- BuildImageResolver.swift
- BuildPipelineHandler.swift
- BuildRemoteContentProxy.swift
- BuildStdio.swift
- Globber.swift
- TerminalCommand.swift
- URL+Extensions.swift
- Builder.swift
- BuilderDelete.swift
- BuilderStart.swift
- BuilderStatus.swift
- BuilderStop.swift
- ContainerCopy.swift
- ContainerCreate.swift
- ContainerDelete.swift
- ContainerExec.swift
- ContainerExport.swift
- ContainerInspect.swift
- ContainerKill.swift
- ContainerList.swift
- ContainerLogs.swift
- ContainerPrune.swift
- ContainerRun.swift
- ContainerStart.swift
- ContainerStats.swift
- ContainerStop.swift
- ManagedContainer+ListDisplayable.swift
- ProcessUtils.swift
- ImageCommand.swift
- ImageDelete.swift
- ImageInspect.swift
- ImageList.swift
- ImageLoad.swift
- ImagePrune.swift
- ImagePull.swift
- ImagePush.swift
- ImageResource+ListDisplayable.swift
- ImageSave.swift
- ImageTag.swift
- MachineCapabilities.swift
- MachineCommand.swift
- MachineCreate.swift
- MachineDelete.swift
- MachineHelpers.swift
- MachineInspect.swift
- MachineList.swift
- MachineLogs.swift
- MachineRun.swift
- MachineSet.swift
- MachineSetDefault.swift
- MachineStop.swift
- NetworkCommand.swift
- NetworkCreate.swift
- NetworkDelete.swift
- NetworkInspect.swift
- NetworkList.swift
- NetworkPrune.swift
- NetworkResource+ListDisplayable.swift
- RegistryCommand.swift
- RegistryList.swift
- RegistryLogin.swift
- RegistryLogout.swift
- DNSCreate.swift
- DNSDelete.swift
- DNSList.swift
- KernelSet.swift
- PropertyList.swift
- SystemCommand.swift
- SystemDF.swift
- SystemDNS.swift
- SystemKernel.swift
- SystemLogs.swift
- SystemProperty.swift
- SystemStart.swift
- SystemStatus.swift
- SystemStop.swift
- SystemVersion.swift
- VolumeCommand.swift
- VolumeCreate.swift
- VolumeDelete.swift
- VolumeInspect.swift
- VolumeList.swift
- VolumePrune.swift
- VolumeResource+ListDisplayable.swift
- AggregateError.swift
- Application.swift
- AsyncLoggableCommand.swift
- BuildCommand.swift
- DefaultCommand.swift
- Flags+ProgressConfig.swift
- HelpCommand.swift
- ListDisplayable.swift
- ListFormat.swift
- OutputRendering.swift
- TableOutput.swift
- K8sCreate.swift
- K8sDelete.swift
- K8sList.swift
- K8sLoadImage.swift
- K8sStart.swift
- K8sWriteConfig.swift
- LinuxNodeProvisioner.swift
- NodeProvisioner.swift
- K8sHelper+Bootstrap.swift
- K8sHelper+Image.swift
- K8sHelper+Kubeconfig.swift
- K8sHelper+Networking.swift
- K8sHelper+Readiness.swift
- TableOutput.swift
- K8sHelper.swift
- KubeConfig.swift
- FileLogHandler.swift
- OSLogHandler.swift
- ServiceLogger.swift
- StderrLogHandler.swift
- DirectoryWatcher.swift
- LocalNetworkPrivacy.swift
- ConfigCodingStrategy.swift
- ConfigSnapshotDecoder.swift
- ConfigSnapshotDecoderContainers.swift
- ConfigurationLoader.swift
- ContainerSystemConfig.swift
- EntityStore.swift
- FilePath+Symlinks.swift
- MachineConfig.swift
- Measurement+Parse.swift
- MemorySize.swift
- Parsers.swift
- PathUtils.swift
- ApplicationRoot.swift
- FilePath+Resolve.swift
- InstallRoot.swift
- LaunchPlist.swift
- LogRoot.swift
- Plugin.swift
- PluginConfig.swift
- PluginFactory.swift
- PluginLoader.swift
- PluginStateRoot.swift
- ServiceManager.swift
- ApplicationError.swift
- FileManager+AllocatedSize.swift
- ManagedResource.swift
- ResourceLabels.swift
- Bundle.swift
- ContainerConfiguration.swift
- ContainerCreateOptions.swift
- ContainerListFilters.swift
- ContainerSnapshot.swift
- ContainerStats.swift
- ContainerStatus.swift
- ContainerStopOptions.swift
- Filesystem.swift
- ManagedContainer.swift
- ProcessConfiguration.swift
- PublishPort.swift
- PublishSocket.swift
- RuntimeStatus.swift
- ImageDescription.swift
- ImageResource.swift
- Attachment.swift
- AttachmentConfiguration.swift
- NetworkConfiguration.swift
- NetworkMode.swift
- NetworkResource.swift
- NetworkStatus.swift
- RegistryResource.swift
- VolumeConfiguration.swift
- VolumeResource.swift
- BuildFixture.swift
- CommandResult.swift
- ContainerFixture+ContainerHelpers.swift
- ContainerFixture+ImageHelpers.swift
- ContainerFixture+MachineHelpers.swift
- ContainerFixture+NetworkHelpers.swift
- ContainerFixture+SSHTestHelpers.swift
- ContainerFixture+SystemHelpers.swift
- ContainerFixture+VolumeHelpers.swift
- ContainerFixture.swift
- KernelFixture.swift
- LoopbackFileServer.swift
- TemporaryStorage.swift
- WarmupImage.swift
- Bundle+AppBundle.swift
- CommandLine+Executable.swift
- ReleaseVersion.swift
- XPCClient.swift
- XPCClientSession.swift
- XPCMessage.swift
- XPCServer.swift
- XPCServerSession.swift
- Version.h
- Version.c
- CompositeResolver.swift
- HostTableResolver.swift
- NxDomainResolver.swift
- StandardQueryValidator.swift
- DNSBindError.swift
- DNSEnums.swift
- DNSName.swift
- IPAddressProtocol.swift
- Message.swift
- Question.swift
- ResourceRecord.swift
- UInt8+Binding.swift
- DNSHandler.swift
- DNSServer+Handle.swift
- DNSServer.swift
- Types.swift
- config.toml
- ImagesHelper.swift
- kindnet.yaml
- config.toml
- K8sCommand.swift
- K8sMain.swift
- create-user.sh
- init
- config.toml
- MachineAPIServer+Start.swift
- MachineAPIServer.swift
- config.toml
- NetworkVmnetHelper+Start.swift
- NetworkVmnetHelper.swift
- config.toml
- RuntimeLinuxHelper+Start.swift
- RuntimeLinuxHelper.swift
- Arch.swift
- Archiver.swift
- Array+Dedupe.swift
- ClientDiskUsage.swift
- ClientHealthCheck.swift
- ClientImage+ImageResource.swift
- ClientImage.swift
- ClientKernel.swift
- ClientProcess.swift
- ClientVolume.swift
- Constants.swift
- ContainerClient.swift
- ContainerizationProgressAdapter.swift
- DefaultPlatform.swift
- DiskUsage.swift
- FileDownloader.swift
- Flags.swift
- HostDNSResolver.swift
- ImageLoadResult.swift
- NetworkClient.swift
- PacketFilter.swift
- Parser.swift
- ProcessIO.swift
- ProgressUpdateClient.swift
- ProgressUpdateService.swift
- RequestScheme.swift
- SignalThreshold.swift
- String+Extensions.swift
- SystemHealth.swift
- Utility+PluginLoader.swift
- Utility.swift
- XPC+.swift
- ContainersHarness.swift
- ContainersService.swift
- DiskUsageHarness.swift
- DiskUsageService.swift
- HealthCheckHarness.swift
- KernelHarness.swift
- KernelService.swift
- NetworksHarness.swift
- NetworksService.swift
- PluginsHarness.swift
- PluginsService.swift
- VolumesHarness.swift
- VolumesService.swift
- ImageServiceXPCKeys.swift
- ImageServiceXPCRoutes.swift
- RemoteContentStoreClient.swift
- ContentServiceHarness.swift
- ContentStoreService.swift
- ImagesService.swift
- ImagesServiceHarness.swift
- SnapshotStore.swift
- Flags.swift
- MachineBundle.swift
- MachineClient.swift
- MachineConfiguration.swift
- MachineKeys.swift
- MachineRoutes.swift
- MachineSnapshot.swift
- MachinesHarness.swift
- MachinesService.swift
- NetworkClient.swift
- NetworkKeys.swift
- NetworkRoutes.swift
- AttachmentAllocator.swift
- DefaultNetworkService.swift
- Network.swift
- NetworkHarness.swift
- NetworkService.swift
- AllocationOnlyVmnetNetwork.swift
- ReservedVmnetNetwork.swift
- Bundle+Log.swift
- ExitMonitor.swift
- InterfaceStrategy.swift
- NetworkBootstrapInfo.swift
- RuntimeClient.swift
- RuntimeConfiguration.swift
- RuntimeKeys.swift
- RuntimeRoutes.swift
- SandboxSnapshot.swift
- LinuxRuntimeData.swift
- IsolatedInterfaceStrategy.swift
- NonisolatedInterfaceStrategy.swift
- RuntimeService.swift
- ConnectHandler.swift
- GlueHandler.swift
- LRUCache.swift
- SocketForwarder.swift
- SocketForwarderResult.swift
- TCPForwarder.swift
- UDPForwarder.swift
- Int+Formatted.swift
- Int64+Formatted.swift
- ProgressBar+Add.swift
- ProgressBar+State.swift
- ProgressBar+Terminal.swift
- ProgressBar.swift
- ProgressConfig.swift
- ProgressTaskCoordinator.swift
- ProgressTheme.swift
- ProgressUpdate.swift
- StandardError.swift
- ArchTests.swift
- DefaultPlatformTests.swift
- DiskUsageTests.swift
- HostDNSResolverTest.swift
- Measurement+ParseTests.swift
- MemorySizeTests.swift
- PacketFilterTest.swift
- ParserTest.swift
- RequestSchemeTests.swift
- UtilityTests.swift
- DiskUsagePathTests.swift
- KernelServiceTests.swift
- RuntimeConfigurationTests.swift
- BuilderExtensionsTests.swift
- BuildFile.swift
- BuildFSSyncTests.swift
- GlobberTests.swift
- HelpCommandTests.swift
- ListFormattingTests.swift
- AttachmentAllocatorTest.swift
- DirectoryWatcherTest.swift
- ConfigSnapshotDecoderTests.swift
- ConfigurationLoaderTests.swift
- FilePathSymlinksTests.swift
- FilesystemEntityStoreTests.swift
- MachineConfigTests.swift
- PathUtilsTests.swift
- FilePath+ResolveTests.swift
- MockPluginFactory.swift
- PluginConfigTest.swift
- PluginFactoryTest.swift
- PluginLoaderTest.swift
- PluginTest.swift
- RootPathTests.swift
- ContainerConfigurationTests.swift
- ManagedContainerTests.swift
- ManagedResourceTests.swift
- NetworkConfigurationTest.swift
- PublishPortTests.swift
- PublishSocketTests.swift
- RegistryResourceTests.swift
- ResourceLabelsTest.swift
- VolumeConfigurationTests.swift
- VolumeJournalConfigTests.swift
- VolumeValidationTests.swift
- Bundle+AppBundleTests.swift
- CommandLine+ExecutableTests.swift
- CompositeResolverTest.swift
- HostTableResolverTest.swift
- MockHandlers.swift
- NxDomainResolverTest.swift
- RecordsTests.swift
- StandardQueryValidatorTest.swift
- TestCLIBuilder.swift
- TestCLIBuilderEnvOnly.swift
- TestCLIBuilderLifecycleSerial.swift
- TestCLIBuilderLocalOutput.swift
- TestCLIBuilderTarExport.swift
- TestCLIBuilderWarmupPullSerial.swift
- TestCLICopyCommand.swift
- TestCLICreateCommand.swift
- TestCLIExecCommand.swift
- TestCLIExportCommand.swift
- TestCLINotFound.swift
- TestCLIPruneCommandSerial.swift
- TestCLIRemove.swift
- TestCLIRemoveSerial.swift
- TestCLIRmRaceCondition.swift
- TestCLIStatsCommand.swift
- TestCLIStop.swift
- TestCLIImagePruneSerial.swift
- TestCLIImagesCommand.swift
- TestCLIProgressAuto.swift
- K8sDiagnostics.swift
- TestK8sLoadImageSerial.swift
- TestK8sNetworkingSerial.swift
- TestK8sRunSerial.swift
- TestK8sWriteConfigSerial.swift
- TestCLIMachineCommand.swift
- TestCLIMachineRuntimeSerial.swift
- TestCLINetwork.swift
- TestCLINetworkPruneSerial.swift
- TestCLIRegistry.swift
- TestCLIRunCapabilities.swift
- TestCLIRunCommand.swift
- TestCLIRunFilesystem.swift
- TestCLIRunInitImage.swift
- TestCLIRunLifecycle.swift
- TestCLIRunLifecycleSerial.swift
- TestCLIRunSecurityPaths.swift
- TestCLITermIO.swift
- TestCLIHelp.swift
- TestCLIKernelSetSerial.swift
- TestCLIPluginErrors.swift
- TestCLIStatus.swift
- TestCLISystemDFSerial.swift
- TestCLISystemLogs.swift
- TestCLIVersion.swift
- TestCLIAnonymousVolumes.swift
- TestCLIVolumes.swift
- TestCLIVolumesSerial.swift
- ImageWarmup.swift
- K8sListTests.swift
- KubeconfigMergeTests.swift
- ConnectHandlerRaceTest.swift
- LRUCacheTest.swift
- TCPEchoHandler.swift
- TCPEchoServer.swift
- TCPForwarderTest.swift
- UDPEchoHandler.swift
- UDPEchoServer.swift
- UDPForwarderTest.swift
- ProgressBarTests.swift
- .gitignore
- .spi.yml
- .swift-format
- .swift-format-nolint
- BUILDING.md
- CONTRIBUTING.md
- LICENSE
- licenserc.toml
- MAINTAINERS.txt
- Makefile
- NOTICE.md
- Package.resolved
- Package.swift
- Protobuf.Makefile
- README.md
- SECURITY.md
# Installation Guide
swift- macOS with Apple silicon macOS 26 or later
- Signed Installer Package Latest release
Setup Steps
container system start
Start the container system service.
container run --rm alpine echo hello
Run your first container to test functionality.
Key Commands
container system start
Start the container background system service.
container run --rm alpine echo hello
Create and run a new container from a specified image.
container system stop
Stop the running container system service.
# Use via CDN
jsDelivrjsDelivr serves any public GitHub repository as a CDN with zero setup. Pick a version and a file to get a ready-to-paste link and snippet.
Release Timeline
Actively MaintainedCommand Glossary
Commands referenced in this DOCs, explained below.
hello
View Details ▼
hello
Print "Hello, world!", "hello, world", or a customizable text.
hello
Print "Hello, world!":
hello {{[-t|--traditional]}}
Print "hello, world", the traditional type:
hello {{[-g|--greeting]}} "{{greeting_text}}"
Print a text message:
alpine
View Details ▼
alpine
An email client and Usenet newsgroup program with a pico/nano-inspired interface.
Supports most modern email services through IMAP.
alpine
Open alpine normally:
alpine {{[email protected]}}
Open alpine directly to the message composition screen to send an email to a given email address:
<q><y>
Quit alpine:
container
View Details ▼
container
Create and run Linux containers as lightweight virtual machines on macOS.
container system start
Start the container services (required before running containers):
container run --rm {{[-it|--interactive --tty]}} {{image}} {{sh}}
Run a container from an image interactively and remove it after it exits:
container run {{[-d|--detach]}} --name {{container_name}} {{[-p|--publish]}} {{8080:80}} {{image}}
Run a container in the background with a name and a published port:
