1. Make sure your Docker context is set to `cloudengine`.
2. In the Docker Desktop Dashboard, navigate to the **Containers** view.
3. If necessary, expand the application listing to show all of its containers.
4. Select the **lock** icon in the **Ports** column of your running container next to `3000:3000`.
This creates a publicly accessible URL that you can share with teammates.
5. Select the **copy** icon, to copy this URL.
To view all shared ports for your Docker context, select the **Shared ports** icon in the bottom-right corner of the Docker Desktop Dashboard.
{{< /tab >}}
{{< tab name="CLI">}}
To share a container port, make sure your Docker context is set to `cloudengine` and then run:
``` console
$ docker harmonia engine share create cloudengine 3000
```
This returns a publicly accessible URL for your React app hosted on port `3000`, that you can share with teammates.
To see a list of all your shared ports, run:
```console
$ docker harmonia engine share list
```
{{< /tab >}}
{{< /tabs >}}
### Step six: Clean up
{{< tabs group="method" >}}
{{< tab name="Docker Desktop">}}
To stop the running project:
```console
$ docker compose down
```
To remove a file sync session:
1. Navigate to your cloud engine in the **Project Harmonia** view.
2. Select the **Actions** menu and then **Manage file syncs**.
3. Select the **drop-down** icon on the file sync.
4. Select **Delete**.
To remove a cloud engine, navigate to the **Project Harmonia** view and then select the **delete** icon.
{{< /tab >}}
{{< tab name="CLI">}}
To stop the running project:
```console
$ docker compose down
```
To remove the file sync session, run:
```console
$ docker harmonia file-sync delete --engine cloudengine $PWD
```
To remove a cloud engine, run:
```console
$ docker harmonia engine delete <name-of-engine>
```
{{< /tab >}}
{{< /tabs >}}
## Troubleshoot
Run `docker harmonia doctor` to print helpful troubleshooting information.
## Known issues
- KinD does not run on Project Harmonia due to some hard-coded assumptions to ensure it's running in a privileged container. K3d is a good alternative.
- Containers cannot access host through DNS `host.docker.internal`.
- File binds (non-directory binds) are currently static, meaning changes will not be reflected until the container is restarted. This also affects Compose configs and secrets directives.
- Bind _mounts_, such as `-v /localpath:/incontainer` in the `docker run` command, require creating a file-sync.
- Creating a [synchronized file share](/manuals/desktop/features/synchronized-file-sharing.md) for a directory with a large amount of may take extra time to sync and become ready for use in a container.
- Bind _volumes_, such as those created with `docker volume create --driver local --opt type=none --opt o=bind --opt device=/some/host/path myvolname` or via the compose equivalent, are not supported.
- Port-forwarding for UDP is not supported.
- Docker Compose projects relying on `watch` in `sync` mode are not working with the `tar` synchronizer. Configure it to use `docker cp` instead, disable tar sync by setting `COMPOSE_EXPERIMENTAL_WATCH_TAR=0` in your environment.
- Some Docker Engine features that let you access the underlying host, such as `--pid=host`, `--network=host`, and `--ipc=host`, are currently disabled.