diff --git a/emhttp/plugins/dynamix.docker.manager/DockerContainers.page b/emhttp/plugins/dynamix.docker.manager/DockerContainers.page
index 8cf6e687c..053c6d958 100755
--- a/emhttp/plugins/dynamix.docker.manager/DockerContainers.page
+++ b/emhttp/plugins/dynamix.docker.manager/DockerContainers.page
@@ -37,7 +37,7 @@ $cpus = cpu_list();
_(Application)_ |
_(Version)_ |
_(Network)_ |
- _(Container IP)_ |
+ _(Container IP)_ / _(MAC)_ |
_(Container Port)_ |
_(LAN IP:Port)_ |
_(Volume Mappings)_ (_(App to Host)_) |
@@ -46,7 +46,7 @@ $cpus = cpu_list();
_(Uptime)_ |
- |
+ |
diff --git a/emhttp/plugins/dynamix.docker.manager/include/DockerClient.php b/emhttp/plugins/dynamix.docker.manager/include/DockerClient.php
index 920a7fdbf..5475cfe0b 100755
--- a/emhttp/plugins/dynamix.docker.manager/include/DockerClient.php
+++ b/emhttp/plugins/dynamix.docker.manager/include/DockerClient.php
@@ -1022,15 +1022,23 @@ public function getDockerContainers() {
$ports = &$info['Config']['ExposedPorts'];
}
foreach($ct['NetworkSettings']['Networks'] as $netName => $netVals) {
+ $networkDetails = $info['NetworkSettings']['Networks'][$netName] ?? $netVals;
$i = $c['NetworkMode']=='host' ? $host : $netVals['IPAddress'];
- $c['Networks'][$netName] = [ 'IPAddress' => $i ];
+ $c['Networks'][$netName] = [
+ 'IPAddress' => $i,
+ 'MacAddress' => $networkDetails['MacAddress'] ?? ''
+ ];
if ( isset($driver[$netName]) && ($driver[$netName]=='ipvlan' || $driver[$netName]=='macvlan') ) {
if (!isset($c['Ports']['vlan'])) $c['Ports']['vlan'] = [];
$c['Ports']['vlan']["$i"] = $i;
}
}
+ $networkDetails = $info['NetworkSettings']['Networks'][$c['NetworkMode']] ?? $ct['NetworkSettings']['Networks'][$c['NetworkMode']] ?? [];
$ip = $c['NetworkMode']=='host' ? $host : $ct['NetworkSettings']['Networks'][$c['NetworkMode']]['IPAddress'] ?? null;
- $c['Networks'][$c['NetworkMode']] = [ 'IPAddress' => $ip ];
+ $c['Networks'][$c['NetworkMode']] = [
+ 'IPAddress' => $ip,
+ 'MacAddress' => $networkDetails['MacAddress'] ?? ''
+ ];
$ports = (isset($ports) && is_array($ports)) ? $ports : [];
foreach ($ports as $port => $value) {
if (!isset($info['HostConfig']['PortBindings'][$port])) {
diff --git a/emhttp/plugins/dynamix.docker.manager/include/DockerContainers.php b/emhttp/plugins/dynamix.docker.manager/include/DockerContainers.php
index 504728b6a..8ed97abad 100644
--- a/emhttp/plugins/dynamix.docker.manager/include/DockerContainers.php
+++ b/emhttp/plugins/dynamix.docker.manager/include/DockerContainers.php
@@ -28,7 +28,7 @@
$autostart_file = $dockerManPaths['autostart-file'];
if (!$containers && !$images) {
- echo "| "._('No Docker containers installed')." |
";
+ echo "| "._('No Docker containers installed')." |
";
return;
}
@@ -154,7 +154,9 @@ function my_lang_log($text) {
}
foreach($ct['Networks'] as $netName => $netVals) {
$networks[] = $netName;
- $network_ips[] = $running ? $netVals['IPAddress'] : null;
+ $network_ip = $running ? htmlspecialchars((string)$netVals['IPAddress']) : '';
+ $network_mac = $running ? htmlspecialchars((string)($netVals['MacAddress'] ?? '')) : '';
+ $network_ips[] = $network_mac ? "$network_ip
$network_mac" : $network_ip;
if (isset($ct['Networks']['host'])) {
$ports_external[] = sprintf('%s', $netVals['IPAddress']);
$ports_internal[0] = sprintf('%s', 'all');