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.
Antihost offers Linux VPS plans with full root access, unlimited traffic on a 1 Gbps port and a 14-day free trial.
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.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11- The official dedicated-server files downloaded through SteamCMD.
- A data directory containing
server_config.sii,server_packages.sii, andserver_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
- [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.
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
- 【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.
- Install SteamCMD using the package or archive method appropriate for the host operating system and architecture.
- Create a directory dedicated to server binaries. Keep it separate from the persistent ETS2 data directory so an image update cannot overwrite configuration.
- 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.
- Launch ETS2 with the account and game installation used to prepare the session.
- Configure the convoy’s map, gameplay options, player limit, and other session settings.
- Export the dedicated-server package.
- 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
- [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.
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
- 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.
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.Start, verify, and update the container
- Check that
server_config.sii,server_packages.sii, andserver_packages.datexist in the host directory that is mounted into the container. - 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.
- Start the service with Docker or Compose.
- 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.
Best Value
- Search for the lobby from ETS2’s in-game browser. Use the exact lobby name configured in the container.
- If the listing is absent, test direct search or direct connection while checking router, firewall, and provider rules.
- 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.
| 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.
Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchesOperational checklist
- Dedicated-server app ID is 1948160.
- SteamCMD update completed successfully.
server_config.sii,server_packages.sii, andserver_packages.datare 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.
Quick Recap
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.




