Docker

1448 readers
2 users here now

founded 3 years ago
MODERATORS
1
 
 

Hey guys!

I want to take the next step in selfhosting and it seems that docker is something I need for my projects.

I am running a Raspberry Pi 5 (16GB) with pihole+unbound and I want to install NextCloud as well. The problem is: NextCloud and PiHole both want to use port 80, which conflicts.

So, I probably need to remap the ports with docker. I already saw some videos and read some instructions, but so far I had no success setting it up. It's pretty confusing, with no docker-experience.

How do you handle this issue? Maybe I just need a little push in the right direction.

~sp3ctre

2
 
 

hey folks, I hate to ask but I'm driving myself crazy. Does anyone know why an Apache2 server would refuse to redirect to docker ports? No matter what I set Proxy/ProxyReverse to or what ensite/dissite, it always goes to the same place.

Debian 13, Docker, bare metal NextCloud install on the system as well.

Any insights are appreciated. Thank you all so much!

3
 
 

cross-posted from: https://feddit.org/post/30198502

System:

Debian 13 KDE (actually MX Linux, but doesn't seem to matter)  
Wayland (xwayland installed as well)  
Docker 29.5.2

Dockerfile:

FROM debian:trixie

ENV DEBIAN_FRONTEND=noninteractive
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV LC_ALL=en_US.UTF-8

# Set locale
RUN apt-get update && apt-get install -y --no-install-recommends \
        locales && \
    apt-get clean && \
    sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && \
    locale-gen

# Install Wayland-specific packages
RUN apt-get update && apt-get install -y --no-install-recommends \
        dbus \
        libwayland-client0 \
        libwayland-egl1 && \
    apt-get clean

# Install X-specific packages
RUN apt-get update && apt-get install -y --no-install-recommends \
        dbus-x11 && \
    apt-get clean

# Add contrib, default is only main
RUN sed -i 's/^Components:.*/Components: main contrib/g' /etc/apt/sources.list.d/debian.sources

# Add 32-bit arch for Steam libraries
RUN dpkg --add-architecture i386

# Install Steam
RUN apt-get update && apt-get install -y --no-install-recommends \
        steam-installer \
        pciutils && \
    apt-get clean

# Additional
# TODO: What is really needed?
RUN apt-get update && apt-get install -y --no-install-recommends \
        vulkan-tools \
        mesa-utils \
        x11-xserver-utils \
        libvulkan1 \
        mesa-vulkan-drivers && \
    apt-get clean

# TODO: Does `-storebeta` even work?
# https://developer.valvesoftware.com/wiki/Command_line_options_(Steam)
CMD ["/usr/games/steam", "-storebeta"]

To run the container:

xhost +
sudo docker run -it --name steam \
    -e XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR \
    -e WAYLAND_DISPLAY=$WAYLAND_DISPLAY \
    -v $XDG_RUNTIME_DIR/$WAYLAND_DISPLAY:$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY \
    -e DISPLAY=$DISPLAY \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    --privileged steam:trixie

(The --privileged part is only temporary until I found out which capabilities are actually needed. Please don't run your containers with --privileged.)

I get the GUI dialogs to download Steam just fine, so at least some display forwarding is working:

The installation works fine, but when starting Steam it seems like it's not able to find Vulkan devices and then doesn't open any Steam window. (The container is not stopping and I'm seeing repeated ./steamwebhelper output after this.)

[...]
Running query: 1 - GpuTopology
CVulkanTopology: failed create vulkan instance: -9
CVulkanTopology: failed to create vulkan instanceFailed to query vulkan gpu topology

Failed to query vulkan gpu topology
Response: 
Exit code: -2
[...]
Vulkan missing requested extension 'VK_KHR_surface'.
Vulkan missing requested extension 'VK_KHR_xlib_surface'.
BInit - Unable to initialize Vulkan!
[...]

However, Vulkan is clearly working fine in the container, as this commands displays the cube rendering just fine:

$ sudo docker exec -it steam vkcube
Selected WSI platform: xcb
Selected GPU 0: AMD Radeon RX 550 / 550 Series (RADV POLARIS12), type: DiscreteGpu

(I've also tried it on another (pure) Debian machine with a 2080Ti, but I've got the same issue.)

I've created other GUI containers in the past (Firefox for example) and didn't have these problems.

Does anybody have an idea and can point me in the right direction?

4
 
 

I have set up my site.conf as a site.conf.template file in /etc/nginx/templates/

It has successfully been copied into etc/nginx/conf.d before, but after making some changes to the template and rebuilding the container, it is not copying again. There are no errors in the docker log for the nginx container, in fact it is running (without the sites config).

I have tried changing the local copy of conf.d to 775, but other than that I can't think of what would be stopping it from copying or triggering. Or where to look for error logs. 🙏

5
 
 

Hello I try install Ghost CMS with docker compose in my server, a minipc I get the compose from docker-hub. I don't change nothing, only for try. Ghost don't launch. The log file error is in the image.

I looked for the error and see that it is something common, but i don't see the solution. I try others user compose file, same result. Desesperate, I asked the IA for compose file, and I see other related error.

In Mastodon, a user suggest me create a config file in the folder, and launch the compose. Same result.

Any idea?? Excuse my english

6
3
submitted 10 months ago* (last edited 10 months ago) by appleberry@aussie.zone to c/docker@programming.dev
 
 

I'm new to docker.

I'm trying to run the nginx/alpine container and getting this error:

2025/08/10 01:09:55 [emerg] 1#1: unknown "flask_port" variable nginx: [emerg] unknown "flask_port" variable

Strangely, there is no flask_port reference in my codebase (having grepped for it in ./*). There is FLASK_PORT, but it seems unlikely that that the case for the missing variable would get changed before outputting to the log file, right?!

I have rebuilt the container many times and cleared the cache. But the message persists.

There is a reference to FLASK_PORT in the .conf file but changing it doesn't change the error message, so I assume it isn't coming from there.

No reference to it in docker-compose.yml or Dockerfile.

Any tips on how to troubleshoot something like this? 🙏

7
 
 

I run a docker container and it has some outdated bits which I forked and updated. The changes need testing and no one else seems to wanna do it. For some odd reason I'm nervous about pointing the image at my repo and building from that. Am I Being Stupid? It's not like if it fails I can't just recreate the image. None of the databases are gonna be affected. So what am I anxious about?

8
 
 

I have installed Nginx Proxy Manager on my Synology NAS using the Container Manager, but I haven’t set up SSL encryption. I already have a Let's Encrypt certificate via Control Panel > Security > Certificate. However, I want to use Nginx Proxy Manager as a reverse proxy instead of Web Station to forward my Docker instances from http://dockerinstance:8000/ to https://dockerinstance:8001/. Is there a guide for beginners?

thanks a lot!

9
 
 

I have a few seperate docker compose files and I thought to make my life easier, I'd just include them in another file and that should work like the project manager. But it keeps trying to take ownership. Is there anyway to avoid that so they're all treated as separate autonomous docker files?

10
11
12
13
2
submitted 1 year ago* (last edited 1 year ago) by neme@lemm.ee to c/docker@programming.dev
 
 
14
15
16
17
 
 
18
19
 
 

I noticed docker compose is now telling me I can set COMPOSE_BAKE=true for "better performance".

Does anyone have any experience with this? Is it worth it? I get suspicious when a program tells me "just use this, it has better performance", but it's not the default.

20
21
22
 
 

I want to be sure the torrent traffic of my transmission docker instance go through my VPN.

I got different interfaces with different vlans on the host. I want to be sure the container created with docker compose use only a specific interface. The interface with the correct vlan has IP 192.168.90.92

I have tested the host connectivity with: curl --interface ethX https://api.ipify.org/ and it's working fine, meaning that public ips are different.

I have tried with the following on the docker compose file:

ports: - 9091:9091 # Web UI port - 192.168.90.92:51413:51413 # Torrent port (TCP) - 192.168.90.92:51413:51413/udp # Torrent port (UDP)

However, the traffic is still coming from the default gateway.

Any idea?

Thanks!

23
 
 

Over the week I've been dealing with the Kinsing virus via Docker on my VPS. I've been learning about it and I've come to find I've been thinking about Docker all wrong with the way that I was using it.

I enjoy using Portainer, so that's a must for me. I know Docker allows you to secure Docker sockets via context; docker context create vps --docker "host=ssh://user@vps".

I would like to use this method, via Portainer (locally) to connect to docker (remote) via SSH. Anyone know of a way to do this? I've been looking around and haven't found much.

24
25
 
 

I recently asked the best way to run my Lemmy bot on my Synology NAS and most people suggested Docker.

I'm currently trying to get it running on my machine in Docker before transferring it over there, but am running into trouble.

Currently, to run locally, I navigate to the folder and type npm start. That executes tsx src/main.ts.

The first thing main.ts does is access argv to detect if a third argument was given, dev, and if it was, it loads in .env.development, otherwise it loads .env, containing environment variables. It puts those variables into a local variable that I then pass around in the bot. I am definitely not tied to this approach if there is a better practice way of doing it.

opening lines of main.ts

import { config } from 'dotenv';

let path: string;

const env = process.argv[2];
if (env && env === 'dev') {
    path = '.env.development';
} else {
    path = '.env';
}

config({
    override: true,
    path
});

const {
    ENVIROMENT_VARIABLE_1
} = process.env as Record<string, string>;

Ideally, I would like a way that I can create a Docker image and then run it with either the .env.development variables or the .env ones...maybe even a completely separate one I decide to create after-the-fact.

Right now, I can't even run it. When I type docker-compose up I get npm start: not found.

My Dockerfile

FROM node:22
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
USER node
COPY . .
CMD "npm start"

My compose.yaml

services:
  node:
    build: .
    image: an-image-name:latest
    environment:
      - ENVIROMENT_VARIABLE_1 = ${ENVIROMENT_VARIABLE_1}

I assume the current problem is something to do with where stuff is being copied to and what the workdir is, but don't know precisely how to address it.

And once that's resolved, I have even less idea how to go about passing through the environment variables.

Any help would be much appreciated.

view more: next ›