/port

🐳 run and manage docker images with ease

Primary LanguageC#GNU General Public License v3.0GPL-3.0

port

port

CI CI

run and manage docker images with ease. Create snapshots from running containers, reset container to their inital image and save the state of running containers without the need to remember docker cli commands, even when using a remote docker engine.

How to get it

Install using scoop

scoop bucket add maple 'https://github.com/kevinboss/maple.git'

scoop install port

Install using winget

Winget version

winget install kevinboss.port

Install manually

Latest release 💾

Then add folder to path $Env:PATH += ";C:\Path\To\Folder"

How to configure it

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

Powershell

To get Unicode support in Powershell, add

[console]::InputEncoding = [console]::OutputEncoding = [System.Text.UTF8Encoding]::new()

to your $profile.

How to use it

Example

run [identifier] -r(eset)

Allows the user the run a specified tag (base or snapshot) of an image.

identifier is optional, if not provided the user will be asked to select an image.

-r(eset) is optional, if provided will reset the already existing the container (if one exists for the image being run)

list [identifier]

Lists all images with their respective tags.

identifier is optional, if not provided all images will be listed. If provided all images belonging to the same identifier will be listed.

commit -t(ag) [identifier]

Creates an image from the currently running container.

identifier is optional, if not provided the user will be asked to select a container.

-t(ag) is optional, if not provied current date-time will be used as the tag.

reset [identifier]

Terminates and removes the currently running container. Then recreates the container using the image the running container was using.

identifier is optional, if not provided the user will be asked to select a container.

remove -r(ecursive) [identifier]

Allows the user the delete a specified tag (base, snapshot or untagged) of an image.

identifier is optional, if not provided the user will be asked to select an image.

-r(ecursive) is optional, if provided child images will automatically removed, if not an error will be thrown if an image has child images.

pull [identifier]

Allows the user the pull a specified tag (base or snapshot) of an image.

identifier is optional, if not provided the user will be asked to select an image.

prune [identifier]

Allows the user the remove untagged versions of an image.

identifier is optional, if not provided the user will be asked to select an image.

stop [identifier]

Stops the currently running container.

identifier is optional, if not provided all identifiers will be pruned.