Nach einer frischen Dockerinstallation sind Docker-Container oft nicht von außen Erreichbar trotz der exposed Ports und der Portfreigabe im RUN-Aufruf.
Standardmäßig wird der Traffic der Default Bridge nicht nach außen weitergeleitet. Aus diesem Grund muss das Forwarding in den Einstellungen gesetzt werden durch zwei Kommandos: Enable forwarding from Docker containers to the outside world
Konfiguriere den Linux-Kernel zum Erlauben des IP-Forwardings:$ sudo sysctl net.ipv4.conf.all.forwarding=1
Ändere die Richtlinie für iptables Weiterleitungen von Drop to Accept:$ sudo iptables -P FORWARD ACCEPT
Da ich eine AMD-Grafikkarte mein Eigen nenne, wollte ich diese auch unter Ubuntu installieren. Der aktuelle Treiber bei AMD ist zum Zeitpunkt der Erstellung des Artikels hier zu finden:
Wichtig: Es wird noch kein Ubuntu 22.04 unterstützt.
Nach der Installation erhielt ich folgende Fehlermeldung:
The following packages have unmet dependencies:
amdgpu-lib : Depends: libwayland-amdgpu-client0 but it is not going to be installed
Depends: libwayland-amdgpu-server0 but it is not going to be installed
Depends: libgbm1-amdgpu but it is not going to be installed
Depends: libegl1-amdgpu-mesa but it is not going to be installed
Depends: libegl1-amdgpu-mesa-drivers but it is not going to be installed
Depends: xserver-xorg-amdgpu-video-amdgpu but it is not going to be installed
vulkan-amdgpu-pro : Depends: libwayland-amdgpu-client0 but it is not going to be installed
Python benötigt die Libffi-Library 6, Ubuntu 20.04 hat aber bereits Version 7. Um die Fehlermeldung bei der Installation zu umgehen, muss einfach nur die Version 6_3.2.1-8 der Library heruntergeladen und installiert werden:
In diesem Beitrag erkläre ich Euch, wie Ihr Eure Remotedesktopverbindung auf beliebige Monitore beschränken könnt. Im konkreten Beispiel auf zwei von dreien. Es geht aber auch eine beliebige andere Kombination – wichtig ist dass die Bildschirme aneinander angrenzen.
Ausgangslage
Vielleicht kennt ihr das seit dem Pandemiejahr 2020 im Homeoffice? Wir auf Arbeit haben den Luxus, dass wir über die Firmentelefonanlage von zu Hause aus telefonieren können. Dafür haben wir die Telefoniesoftware auf dem heimischen PC installiert, arbeiten aber per Remote-Desktop auf den Büro-PC.
Jetzt habe ich aber das Geraffel, dass zum Annehmen, wählen und Auflegen von Telefongesprächen erst aus der Remoteumgebung raus auf den heimischen Rechner muss, um das Telefon zu bedienen.
Bisher hatte ich das so gelöst, dass ich entweder über alle Bildschirme eine RDP-Sitzung geöffnet hatte oder aber über nur einen. Zum Arbeiten im Büro benötige ich jedoch im Idealfall zwei Bildschirme. Warum also nicht die RDP-Sitzung auf zwei von drei Bildschirmen reduzieren?
Lösungsansatz
Ich erstelle eine RDP-Sitzung, in der ich den Haken für “Alle Monitore für Remotesitzung verwenden” anhake.
Statt mich zu verbinden, speichere ich die Verbindungseinstellung in eine Verbindungsdatei. Diese öffne ich mit einem Editor Hier füge ich ganz unten eine Zeile an:
selectedmonitors:s:0,2
Hier könnt ihr mit den Zahlen hinter den Doppelpunkt die Bildschirmnummern (mit 0 aufsteigend) angeben, die ihr verwenden wollt.
Gegebenfalls müsst ihr mit den Zahlen etwas ausprobieren, bis ihr die richtige Bildschirmkombination gefunden habt. Nach einer Weile ausprobieren fand ich heraus, dass 0,2 für mein persönliches Monitor-Setup das richtige ist. Ihr könnt zum Beispiel mit nur einer Zahl als Angabe erstmal testen, welcher Bildschirm welche Nummer hat, um Euch an das richtige Ergebnis heranzutasten. Viel Erfolg!
Hier ist der kopierte Codeschnipsel, wie ich das Bild eines CommandButtons zur Laufzeit in VBA (Excel) ändern kann:
Sub ChangeButtonImage()
Dim picPicture As IPictureDisp
Dim picMask As IPictureDisp
Set picPicture = stdole.StdFunctions.LoadPicture( _
"c:\images\picture.bmp")
Set picMask = stdole.StdFunctions.LoadPicture( _
"c:\images\mask.bmp")
'Reference the first button on the first command bar
'using a With...End With block.
With Application.CommandBars.FindControl(msoControlButton)
'Change the button image.
.Picture = picPicture
'Use the second image to define the area of the
'button that should be transparent.
.Mask = picMask
End With
End Sub
Völlig ohne Vorwarnung haben meine ganzen Java-Projekte diese Fehlermeldung erhalten:
Access restriction: The constructor is not API (restriction on required library 'C:\Program Files\Java\jre1.8.0_181\lib\ext\jfxrt.jar')
Lösen ließ sich das ganz einfach. Das Projekt hatte sich als Java-Grundlage eine Runtime (JRE) und kein Development Kit (JDK) gewählt –> Das muss einfach wieder umsgestellt werden auf JDK.
Alternativ kann man die Berechtigung auch für das betroffene Projekt vergeben:
In ein Properties des Projekts
Java Build Path –> Libraries
Acess Rules –> Edit und Add
Als Wert “javafx/**” (in meinem Fall) hinzufügen.
Anschließend Apply und Rebuild –> Problem gelöst 🙂