Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix Now×
Skip to content
World desk10 min

How to Run a Euro Truck Simulator 2 Dedicated Server in Docker

A practical guide to hosting an ETS2 dedicated server in Docker, covering SteamCMD installation, server package export, persistent mounts, port forwarding, server identity, VPS choices, and browser troubleshooting.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

To run a Euro Truck Simulator 2 (ETS2) dedicated server in Docker, install the dedicated-server files with SteamCMD (app ID 1948160), export the convoy package files from ETS2, mount that data into a maintained container image, and publish the server’s connection and query ports. In SCS Software’s documented example, virtual ports are 100 and 101, while the host-facing dedicated ports are 27015 and 27016. Public hosting requires a reachable public IP and TCP/UDP forwarding because the dedicated server does not perform NAT punching.

What an ETS2 Docker server actually needs

Docker does not replace the ETS2 dedicated-server application. It packages the application, its configuration, its generated convoy package, and its logs so that the service can be started, stopped, upgraded, and moved consistently. The reliable deployment has four parts:

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • The official dedicated-server files downloaded through SteamCMD.
  • A data directory containing server_config.sii, server_packages.sii, and server_packages.dat.
  • A maintained ETS2/ATS container image whose documentation defines its startup command, environment variables, and in-container data path.
  • Host networking and firewall rules that publish both the connection and query ports.

The dedicated server supports up to eight players according to SCS Software’s current documentation. It does not need separate DLC or mod downloads: the exported package files describe the convoy content. It also cannot access Steam Workshop content because it runs without the Steam client.

Prerequisites and decisions before installation

Choose a host with real public reachability

Before installing anything, establish whether players on the internet can reach the host. SCS states that the dedicated server does not handle NAT punching; a public IP address or correctly configured port forwarding is required for the server to appear in the session browser. A machine behind carrier-grade NAT, a locked-down apartment network, or a provider that blocks inbound traffic may be unable to host a publicly discoverable session even when Docker is configured correctly.

#1 Best Overall
Sale
TOZO A1 Wireless Earbuds Bluetooth 5.3 Light Weight in Ear Headphones | IPX5 Waterproof,2 Mics for AI Calls,Immersive Premium Sound Bass Headset with Charging Case,32 EQ via App Black
  • [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
  • [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
  • [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
  • [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
  • [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.

On a home connection, confirm that the router can forward TCP and UDP traffic to the Docker host and that the host firewall permits it. On a VPS or rented server, confirm that the provider supplies a public IPv4 address or usable IPv6 path and lets you create inbound TCP and UDP rules. SCS explicitly supports running the standalone server on a rented or paid-for server.

Decide where persistent data will live

Keep the ETS2 data directory on the host, outside the container’s writable layer. A bind mount or named volume preserves the server configuration, package files, and logs when the image is replaced. A bind mount is easier to back up and inspect; a named volume is convenient when Docker should manage the storage location. Whichever method you use, back up the directory before changing the image tag or regenerating package files.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check image compatibility

Container projects differ. Before creating the service, read the selected image’s current documentation and verify its image tag, CPU architecture support, required environment-variable names, expected data-directory path, user and group permissions, and update procedure. The port values and mount examples below describe the SCS defaults, not a promise that every image uses the same internal path or variable names.

Install the dedicated-server files with SteamCMD

Steam Support’s current guidance is that Steam game servers use SteamCMD for downloading and updating server files. Install SteamCMD on the host or in the image’s supported build workflow, then use the normal anonymous-login and app-update sequence for app ID 1948160.

Rank #2
Sale
Smart Watch for Men Women Compatible with iPhone Samsung Android Phone 1.69 inch Full Touch Screen IP68 Waterproof Bluetooh Fitness Tracker Heart Rate/Sleep Monitor (Black)
  • 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
  • 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
  • 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
  • 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
  • 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.
  1. Install SteamCMD using the package or archive method appropriate for the host operating system and architecture.
  2. Create a directory dedicated to server binaries. Keep it separate from the persistent ETS2 data directory so an image update cannot overwrite configuration.
  3. Run the SteamCMD update command:
steamcmd +login anonymous +app_update 1948160 validate +quit

If SteamCMD is installed somewhere other than the shell’s search path, call it with its full path. The validate operation checks downloaded files; it can take longer than a routine update. Run the same app-update operation whenever you intentionally update the dedicated-server build, and review the container image documentation if the image performs this step automatically.

Generate the convoy package and configuration

The server cannot create a useful convoy from only the executable files. Start ETS2 normally, configure the convoy session, and use the game’s dedicated-server package export controls documented by SCS. The export produces the package pair that the headless server reads.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Launch ETS2 with the account and game installation used to prepare the session.
  2. Configure the convoy’s map, gameplay options, player limit, and other session settings.
  3. Export the dedicated-server package.
  4. Place the resulting files in the server data directory and confirm that all three required files are present:
  • server_config.sii — the server’s configuration.
  • server_packages.sii — package metadata.
  • server_packages.dat — package data.

Do not rename the files. If you regenerate a convoy package after changing content, replace the matching files as a set and restart the container. Keep a dated backup before replacing them so you can roll back to a known-good session.

Map the host directory into the container

Create a host directory such as /srv/ets2-data, copy the three files into it, and grant the container’s runtime user read/write access if the selected image requires it. Then bind-mount that directory to the path specified by the image documentation. A generic Docker run pattern is:

Rank #3
New Bee Guitar Cable 10ft Electric Instrument Bass AMP Cord
  • [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
  • [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
  • [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
  • [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
  • [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by
docker run -d 
  --name ets2-server 
  --restart unless-stopped 
  -v /srv/ets2-data:${CONTAINER_DATA_PATH} 
  ${ETS2_IMAGE}

${CONTAINER_DATA_PATH} and ${ETS2_IMAGE} are shell variables representing values from the image’s documentation; they are not universal Docker paths. Replace them in your shell environment or command with the actual values for the image you selected. Do not guess the mount path: a container can start successfully while reading an empty directory, which produces a server with missing or default configuration.

A Compose-style layout

Compose is useful when you want the port mappings and persistent mount recorded in one file. The exact environment-variable names are image-specific, so treat this as a structural template and substitute the names documented for your image.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
services:
  ets2:
    image: ${ETS2_IMAGE}
    container_name: ets2-server
    restart: unless-stopped
    ports:
      - "27015:27015/tcp"
      - "27015:27015/udp"
      - "27016:27016/tcp"
      - "27016:27016/udp"
    volumes:
      - /srv/ets2-data:${CONTAINER_DATA_PATH}

Add the image’s documented settings for lobby name, maximum players, virtual ports, physical ports, gameplay flags, and optional Steam game-server logon token under environment. Do not assume that a variable named in one project exists in another; an unrecognized variable is often ignored without an obvious error.

Understand virtual and physical ports

SCS’s example separates the ports used inside the server configuration from the host ports exposed to the network.

Rank #4
BSIMB 15.6" Digital Family Calendar & Chore Chart, No Subscription Fees
  • Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
  • Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
  • All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
  • Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
  • Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.
Purpose Documented example What it means
Connection virtual port 100 Internal ETS2 value used by the server configuration; it is not the router-forwarding port.
Query virtual port 101 Internal query value; it is not forwarded directly by the router.
Connection dedicated port 27015 Host-facing port that carries player connections.
Query dedicated port 27016 Host-facing port used for discovery and server queries.

For public access, SCS requires both TCP and UDP forwarding for the documented physical ports. On a router and on a host firewall, forward or allow 27015/TCP, 27015/UDP, 27016/TCP, and 27016/UDP to the Docker host. If you change the physical ports, keep the Docker mappings, image settings, router rules, and firewall rules consistent. Check the image’s current README before changing rules because an image may expose a different default or require an additional setting.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Configure the server identity

An anonymous or empty launch receives a non-persistent server identity. That can be acceptable for a temporary test, but it means the server identity may change after recreation. For a stable listing, use a Steam game-server logon token. Creating such a token requires ownership of the game, and the game app ID used to request it must be the ETS2 app ID, 1948160.

Store the token as a protected environment value or secret supported by the image rather than committing it to a public Compose file. Limit file permissions on any environment file and rotate the token if it is exposed. A token does not remove the need for public reachability or correct port forwarding; it supplies persistent identity, not NAT traversal.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Start, verify, and update the container

  1. Check that server_config.sii, server_packages.sii, and server_packages.dat exist in the host directory that is mounted into the container.
  2. Confirm that the selected image’s environment values match the intended lobby name, eight-player maximum or a lower limit, virtual ports 100 and 101, physical ports 27015 and 27016, and any gameplay flags.
  3. Start the service with Docker or Compose.
  4. Immediately inspect its logs:
docker logs -f ets2-server

Look for successful data-directory detection, package loading, port binding, and a normal server-ready message. An error about a missing package file usually means the mount path or host permissions are wrong, not that the package must be downloaded from Workshop.

  1. Search for the lobby from ETS2’s in-game browser. Use the exact lobby name configured in the container.
  2. If the listing is absent, test direct search or direct connection while checking router, firewall, and provider rules.
  3. After a successful test, stop the service cleanly before replacing the image or package files. Keep the host data directory so the identity, configuration, and logs survive container replacement.

Home host or VPS?

The right location is determined first by reachability, then by reliability and administration. A home server can be inexpensive when the internet connection already includes a public address and permits inbound traffic. A VPS avoids many home-router problems but adds a recurring hosting charge and remote-system maintenance.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Decision factor Home Docker host VPS or rented server
Public IP Depends on the ISP; carrier-grade NAT can block hosting. Usually designed to provide public networking, subject to the provider’s plan and firewall.
TCP/UDP forwarding Requires router rules plus the host firewall. Requires provider security rules plus the operating-system firewall.
Uptime Affected by home power, reboots, and internet outages. Generally better suited to an always-on service, but depends on the provider.
Backups You control local and off-site copies of the mounted directory. You must configure volume backups; a VPS snapshot is not a substitute for testing restoration.
Player latency Often best for players near the home connection. Choose a region close to most players; routing quality varies.
Cost Uses existing hardware and connection, with possible electricity costs. Recurring rental cost; no universal price is established.
Administration Router, NAT, power, and local security are your responsibility. Remote Linux, provider firewall, updates, and account security are your responsibility.

SCS says multiple instances can be run depending on the host’s specifications. It does not publish a current Docker-specific CPU, RAM, or storage minimum in the cited documentation, so size the machine according to the number of instances, concurrent players, log retention, and the rest of the host workload rather than relying on an invented baseline.

Troubleshoot a server that does not appear

The container exits immediately

  • Read the complete log, not only the final line.
  • Verify the image tag and CPU architecture.
  • Check that the mounted directory contains all three required files.
  • Confirm that the container user can read the package files and write logs or generated state.
  • Compare every environment-variable name with the image’s current documentation.

The server starts but the browser is empty

  • Confirm that the host has a public IP and is not behind carrier-grade NAT.
  • Forward 27015 and 27016 using both TCP and UDP, then allow the same four host-firewall rules.
  • Check that Docker publishes the ports on the intended host interface rather than only on loopback.
  • Verify that the physical-port settings in the image match the router rules.
  • Try direct search or connection from outside the host’s local network.
  • Allow time for the listing to update after a restart, while continuing to watch logs for registration errors.

Players can connect locally but not from the internet

This pattern points to routing, not ETS2 content. Test from a different internet connection, inspect the router’s forwarding target, and verify that the ISP or VPS security layer is not filtering UDP. Hairpin NAT can also make a local test misleading: a player on the same LAN may connect while external players cannot.

The lobby appears with the wrong settings

Stop the container, inspect the mounted server_config.sii, and verify that the package files were exported after the intended convoy changes. Remove no files blindly; make a backup, regenerate the package when necessary, and restart so the server reads a consistent set.

The server identity changes after recreation

Use a Steam game-server logon token created with app ID 1948160 and pass it through the image’s supported secret or environment mechanism. Also confirm that the persistent data directory is actually mounted; a new anonymous launch in an empty container filesystem will not retain identity state.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Operational checklist

  • Dedicated-server app ID is 1948160.
  • SteamCMD update completed successfully.
  • server_config.sii, server_packages.sii, and server_packages.dat are in the mounted data directory.
  • Image tag, architecture, mount path, user permissions, and environment names were checked against its current documentation.
  • Virtual ports are configured as intended; the documented example uses 100 and 101.
  • Physical ports are mapped consistently; the documented example uses 27015 and 27016.
  • Both TCP and UDP are allowed for both physical ports.
  • The host has a public route, or the VPS provider supplies one.
  • A persistent volume or bind mount is backed up.
  • A Steam game-server logon token is used when a stable server identity is required.
  • Logs are checked after every startup, package replacement, and image update.

What Docker can and cannot solve

Docker makes deployment repeatable and protects configuration from container replacement when the data directory is persistent. It does not provide a public IP, bypass carrier-grade NAT, create router rules, supply Workshop access, or determine the correct environment-variable names for an image. Those remain networking, content-packaging, and image-documentation tasks. Treat public reachability as the first gate: if players cannot reach the host, changing container flags will not make the lobby discoverable.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.