Skip to content
  • GDPR-compliant
  • 100% hosting in Germany
  • Personal contact
  • Support included
  • Provisioning within 24 hours
Getting started & containers 6 min read

Importing from docker-compose: several containers in one step

With Import from docker-compose you take over a complete application from a docker-compose.yml, for example WordPress with its database. We read all services of the file, show you beforehand exactly what will be created and then create everything in one go: containers, networks, volumes, variables and, if you wish, one published port per service - as a web address with HTTPS or as a dedicated TCP port. If you only want to take over the settings of a single service into a new container, use the docker-compose template.

1. Upload the file

  1. Open your container project and click Import from docker-compose at the top.
  2. Under File, select your docker-compose.yml with Choose compose file or paste the content with Paste content and click Read file.
  3. If your file uses variables such as ${DB_PASSWORD} or env_file: .env, also upload your .env under .env file (optional).

Both files are only read and never stored. A file may be at most 64 KB.

2. Name the group

All containers of the import get the group name as a prefix. If the group is called blog, the services wordpress and db become the containers blog-wordpress and blog-db. The services still reach each other by their names from the file - a setting such as WORDPRESS_DB_HOST: db therefore works unchanged. The network of the file is named like the group in the project, further networks <group>-<network>.

3. Enter values for variables

Under Values for variables you find every variable your file uses, with its origin: from .env, default from the file or missing. Enter missing values here. For passwords, Generate creates a random password. Variables with names such as PASSWORD, SECRET, TOKEN or KEY are stored encrypted as secrets (Environment variables and secrets).

4. Check the services

Under Services you see each service with its future container name, the image and its check status:

  • Checked or Checked before start - the image can be taken over.
  • Approval required - the image does not come from an approved source. With Request approval you ask our team for it, or you exclude the service.
  • No image (build) - the service is built from source. Build the image yourself beforehand and push it to your registry (Creating containers), or exclude the service.
  • Blocked or Invalid address - choose another version in the file or exclude the service.

With the Import switch you exclude a service from the import. Under Web address you choose the port under which the service should be reachable on the web - we suggest it from the ports of the file. The address is then <container>-<project>.<base domain> with SSL (Making containers reachable on the web). Under Details you find variables, volumes, networks, limits, start command and restart of the service, and below notes on what we adjusted or did not take over.

5. Create containers

The Summary shows how many containers, new networks and web addresses will be created and how many containers your project uses afterwards. If it shows To clarify before the import, fix the listed points first, for example missing passwords, a group name already in use or the limits of your plan (Plan and options). Confirm the licence terms - and for images with security findings the risk - and click Create containers.

Everything is created in one go: if one part fails, nothing is created. Afterwards we check the images and the containers start by themselves - services with depends_on after the services they need. You can follow the progress in the project.

What is taken over - and what is not

Taken over: image, environment, env_file: .env, volumes, networks including internal and aliases, container_name (as an additional name in the network), command, restart, depends_on (start order) and mem_limit and cpus as far as they fit your plan.

Adjusted: folders from the server (./data:/var/lib/…) become empty volumes - upload the contents afterwards in the file browser (Volumes and file browser). Fixed digests (@sha256:…) are replaced by the state we checked. Multiple instances (replicas) become one container.

Not taken over: build, privileged, cap_add, devices, network_mode, access to the server such as /var/run/docker.sock, and settings without effect on the platform such as healthcheck, user or entrypoint. You publish one port per service: as a web address with HTTPS (for applications in the browser) or as a dedicated TCP port (for SSH, databases and other services without a browser). You open further ports later under Reachability if needed (Networks and firewall).

Moving data

The import creates your application empty - you bring your existing data afterwards:

  • Files such as uploads or themes are uploaded in the Storage tab into the matching volume (Volumes and file browser).
  • Databases are exported on the old server, the export is uploaded into a volume and imported via the console or the tool of the application.

We check all images for security before the first start (Security in Container Hosting).

Is my docker-compose file stored?
No. The file and the .env are only read to create the containers. Only the containers with their settings are stored; passwords and keys encrypted.
Why are my containers named differently than in the file?
So that several applications fit into one project, all containers get the group name as a prefix. In the network they remain reachable by their service name from the file.
A service is built with build. What can I do?
Build the image on your computer, push it to your own registry and enter it in the file as image. You set up your registry in the customer area; after our approval its images can be used directly.
The import reports that my plan is not sufficient.
Exclude services you do not need, or switch to a larger plan. The summary shows how many containers and networks your plan allows.
Can I change the containers afterwards?
Yes. Each container can then be changed in its settings like any other, and you can open further web addresses or ports.
How do I delete an imported application completely?

In the Containers tab, above the containers, every imported group has a Delete group button. To confirm, you enter the name of the group. All containers and networks of the group are deleted; the data (volumes) only if you tick "Also delete data". Without the tick the volumes are kept and a new import with the same group name takes them over.

Which ports should I publish?

Publish applications used in the browser (WordPress, n8n, Grafana …) as a web address: you get an address with an SSL certificate. Publish services without a browser such as SSH or a database as a dedicated TCP port and then decide under Reachability who may access it. Services that only other containers need to reach are not published at all - they are reachable in the network by their name.

Was this article helpful?

New to SpeedIT Solutions?

Hosting where you know someone.

What you are reading here is what we put into practice for our customers every day. Based in Isernhagen since 2009 - with dedicated contact persons rather than a call centre.

  • 100% hosted in Germany
  • GDPR-compliant
  • Dedicated contact person
  • Provisioning within 24 hours
4.9 88 reviews on Expeero

toller Provider

nicht nur in den Preisen und der Leistung klasse, auch beim Support 1a. Kann ich nur empfehlen
Nanko B.Recommends us · 08/07/2026

100 % recommend us · Expeero

All reviews on HOSTtest (opens in a new window)

You might also be interested in:

Personal support

Of course, our support team is also happy to assist you personally. If you cannot find what you are looking for in our knowledge base or require personalised support, please do not hesitate to contact us. We’re here to help you and to ensure that your experience with our products and services is as smooth and enjoyable as possible.