Home Explore Blog CI



docker

4th chunk of `content/manuals/harmonia/_index.md`
81d299b60a9ca245edc56d3e17becee3321268f642aac58a0000000100000d12
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.

Title: Cleaning Up and Troubleshooting Project Harmonia
Summary
This section provides instructions for cleaning up after using Project Harmonia, including stopping the running project, removing file sync sessions, and deleting cloud engines, using both Docker Desktop and the CLI. It also includes a troubleshooting section with the `docker harmonia doctor` command and lists known issues and limitations, such as KinD incompatibility, limitations with DNS resolution, file binds, bind volumes, UDP port-forwarding, and certain Docker Engine features like `--pid=host` and `--network=host`.