port Kevin Boss
winget install --id=kevinboss.port -e
A tool that has been designed to manage multiple docker images and / or tags of these images. It allows the user to run one of these images / tags in a container, creating snapshots of that running container and manage the downloaded images
README
đŗ port: run and manage containerized services with ease
Port streamlines the management of Docker images and containers, empowering you to:
- âļī¸ Run containers effortlessly with simple commands.
- âšī¸ Stop running containers seamlessly.
- đ List all containers to keep track of their status.
- đī¸ Remove unwanted containers to free up resources.
- đ Reset containers to their original state for reusability.
- đž Save container states for future use or backups.
All this without the hassle of memorizing complex Docker CLI commands, even when working with remote Docker engines.
đĨ Installation
Scoop
scoop bucket add maple 'https://github.com/kevinboss/maple.git'
scoop install port
Winget
winget install kevinboss.port
Manual Installation
-
đ Download the latest release from the Releases Page.
-
đ ī¸ Add the folder to your system PATH:
$Env:PATH += "C:\Path\To\Folder"
âī¸ Configuration
Configure Port by creating a config.yml
file:
version: 1.1
dockerEndpoint: unix:///var/run/docker.sock
imageConfigs:
- identifier: Getting.Started
imageName: docker/getting-started
imageTags:
- latest
- vscode
ports:
- 80:80
environment:
- DEBUG=1
A default .port
file will be created in your user profile if you don't manually create one.
đ§âđģ Usage
Commands
-
âļī¸ Run an Image:
Run a specific tag (base or snapshot) of an image:
port run [identifier] -r
identifier
(optional): If omitted, a prompt will request image selection.-r
(reset) (optional): Resets the existing container for the specified image, if applicable.
-
âšī¸ Stop a Container:
Stop a running container:
port stop [identifier]
identifier
(optional): Specifies the container to stop. If omitted, operates on the current container.
-
đ List Images:
Display all images and their tags:
port list [identifier]
identifier
(optional): Limits the listing to images under the given identifier. Without it, all images are listed.
-
đī¸ Remove an Image:
Delete a specific image tag (base, snapshot, or untagged):
port remove -r [identifier]
identifier
(optional): If omitted, a prompt will request image selection.-r
(recursive) (optional): Automatically deletes child images. Without this, an error is raised if the image has dependents.
-
đ Reset a Container:
Stop, remove, and recreate the container using its original image:
port reset [identifier]
identifier
(optional): If omitted, a prompt will request container selection.
-
đž Commit a Container:
Generate an image from the currently active container:
port commit -t [identifier]
identifier
(optional): If omitted, a prompt will request container selection.-t
(tag) (optional): Specifies the tag name. Defaults to the current date-time if not provided.-o
(overwrite) (optional): Re-uses the running image and replaces the existing one.
-
đĨ Pull an Image:
Download a specific tag (base or snapshot) of an image:
port pull [identifier]
identifier
(optional): If omitted, a prompt will request image selection.
-
đ ī¸ Prune Images:
Remove untagged versions of an image:
port prune [identifier]
identifier
(optional): If omitted, a prompt will request image selection.
Powershell
To get Unicode support in Powershell, add:
[console]::InputEncoding = [console]::OutputEncoding = [System.Text.UTF8Encoding]::new()
to your $profile
.
đ¤ Contributing
We welcome contributions to improve Port! Please follow the steps below:
- đ´ Fork the repository.
- đą Create a new branch for your feature or bug fix.
- đž Commit your changes.
- đ Submit a pull request.
đ License
This project is licensed under the GPL-3.0 License.