我screen在命令shell上使用多路复用器工具并打开很多屏幕.然后我忘记哪个进程ID与哪个任务相关联.
我想为屏幕设置名称,但在联机帮助页中找不到选项.
目前,列出屏幕如下所示:
There are screens on:
5422.pts-1.aws1 (Detached)
5448.pts-1.aws1 (Detached)
5027.pts-1.aws1 (Detached)
3 Sockets in /var/run/screen/S-sb.
Run Code Online (Sandbox Code Playgroud)
我希望看到这样的事情:
There are screens on:
5422.logCleanWorker (Detached)
5448.overNightLongTask(Detached)
5027.databaseOverNightLongTask (Detached)
3 Sockets in /var/run/screen/S-sb.
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我从https://www.docker.com/products/docker-desktop为 windows 10 安装了 docker-desktop ,并为 Linux 容器启用了 docker 守护进程。我有自己的 wsl2 发行版,名为 ubuntu,我启用了 docker-desktop 与发行版 ubuntu 的集成,并在其中构建了一个映像。但我无法弄清楚图像的保存位置。我做了一些搜索,发现有人说它在\\wsl$\docker-desktop-data\mnt\wsl\docker-desktop-data\data\docker. 我确实找到了这个文件夹,但整个文件夹只有几百 MB,而我的图像有几 GB。我只在文件夹中找到元数据,而不是真实图像。有人指出我可以在 docker 资源配置选项卡中找到图像路径,但我的没有显示 docker 图像在哪里......

有没有人在类似情况下找到图像?
更新
在文件夹中创建的卷:\\wsl$\docker-desktop-data\mnt\wsl\docker-desktop-data\version-pack-data\community\docker\volumes
我正在创建一个像我的图像的实例
docker run -P webmodule-xy
Run Code Online (Sandbox Code Playgroud)
webmodule的Dockerfile公开了一个端口(例如8080).
我现在的目标是获取可通过Java从外部访问的映射/分配端口号.是否有环境变量或类似的东西?
用例:webmodule-xy应该在另一个Web应用程序上注册并提供其IP +端口,以便其他应用程序可以在以后联系webmodule-xy.IP没问题,但端口是.
我已经在GitHub上找到了这个未解决的问题,但我无法相信没有简单的解决方案.就像那里所说,REST不是一个选项:
允许容器访问REST API是有问题的.首先,REST API是可读/写的,如果你需要的只是阅读你的portmappings,那么授予容器只是为了找到几个端口是一种危险的权限级别.
我正在尝试将docker容器的IP地址作为容器中的环境变量.这是我尝试过的:
启动容器时
docker run -dPi -e ip=`hostname -i` myDockerImage
Run Code Online (Sandbox Code Playgroud)
当容器已经启动时
docker exec -it myDockerImage bash -c "export ip=`hostname -i`"
Run Code Online (Sandbox Code Playgroud)
这两种方法的问题在于它使用运行命令的主机的ip地址,而不是运行它的docker容器.
那么我在docker容器中创建了一个如下所示的脚本:
#!/bin/bash
export ip=`hostname -i`
echo $ip
Run Code Online (Sandbox Code Playgroud)
然后运行它
docker exec -it myDockerImage bash -c ". ipVariableScript.sh"
Run Code Online (Sandbox Code Playgroud)
当我添加my_cmd(在我的情况下是bash脚本的末尾)时,它可以在一个bash会话中工作.我以后不能在我需要它的文件中使用它.我需要将它设置为环境变量,而不是作为一个会话的变量.
所以我已经用'.'来源了它.但是当我在容器中时,它仍然不会回响.如果我$ip在脚本中放入一个echo ,它会给我正确的IP地址.但只能在正在设置的脚本中使用.
我已经设置了一个带有多个docker容器的服务器,可以通过jwilders nginx reversre proxy访问.运行容器时,可以设置VIRTUAL_HOST环境变量.我一直试图找出一种在容器启动后更新这些内容的方法.
这里发布的解决方案:
您只需停止docker守护程序并更改容器配置
/var/lib/docker/containers/[container-id]/config.json
需要你停止docker守护进程,但我宁愿不必诉诸于此.
另一个在这里,使用docker commit来保存实例信息:
话虽如此,您可以通过将其作为新图像提交来保存容器中的文件系统更改;
Run Code Online (Sandbox Code Playgroud)$ docker run -it --name=foobar alpine sh $ docker commit foobar mynewimage $ docker rm foobar $ docker run -it --name=foobar mynewimage sh
虽然这对于改变环境变量似乎也有点过头了.
我查看了docker update,但这主要是为了重新配置容器资源.
当然,如果我没有其他选择,我将使用上述任何一种方法,但我想知道是否有人找到了其他解决方案?