标签: docker

Windows WSL2“发行版”只是底层的 docker 容器吗?

我在github上找到了这个文档:

WSL2 发行版作为容器运行

不过它已经有一段时间没有更新了,所以我想知道是否有人知道 Microsoft 是否已经发布了一份技术文档来描述 WSL2 发行版作为容器的实现。

windows documents docker windows-subsystem-for-linux wsl2

23
推荐指数
2
解决办法
7982
查看次数

如何逃脱“!” 和 docker 环境变量中的“&”

我有一个 docker 容器,我想运行它并把它交给一些密码。一个带有感叹号!,另一个带有&符号&。所以我想运行这个:

docker run -i -t --rm \
-e "LDAP_FILTER=(&(objectCategory=person)(objectClass=user)" \
-e "LDAP_PASS=Secret!Password" \
user-prefix/container-name
Run Code Online (Sandbox Code Playgroud)

那行不通。&被替换为{LDAP_FILTER}并被!截断。我很确定我必须逃避这些。但是\!\&没有成功。

shell escape-characters escaping docker

21
推荐指数
1
解决办法
3万
查看次数

如何让我的所有 docker 容器使用我的代理?

我在公司代理后面的 Debian Jessie 上运行 docker。为了能够下载 docker 图像,我需要将以下内容添加到我的/etc/defaults/docker

http_proxy="http://localhost:3128/"
Run Code Online (Sandbox Code Playgroud)

我可以确认这有效。

但是,为了能够从我的容器中访问 interwebz,我需要启动所有会话,--net host然后设置这些 env 变量:

export http_proxy=http://localhost:3128/
export https_proxy=https://localhost:3128/
export ftp_proxy=${http_proxy}
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望容器不需要主机网络,也不知道代理(即容器中对端口 20、80、443 的所有出站调用都通过主机的代理端口)。那可能吗?

如果做不到这一点,是否有可能进行站点设置,以确保这些环境变量在本地设置但永远不会作为图像的一部分导出?

更新:我知道我可以通过--env http_proxy=...等来传递这些东西,但这很笨重。我希望它适用于系统上的所有用户,而不必使用别名。

proxy docker

21
推荐指数
1
解决办法
4万
查看次数

从命令行启动 Docker for Mac?

有没有办法从命令行启动 Docker for Mac(和/或 Docker for Windows)?我找不到任何关于它的文档。

我的团队使用一组脚本来使用 docker-machine 自动设置我们的开发环境。我们中的一些人一直在为 Mac 测试 Docker 并喜欢它,但我们不喜欢在切换回命令行之前必须启动一个单独的应用程序。

docker macos

21
推荐指数
1
解决办法
2万
查看次数

查找启动 docker 容器的用户

我们有许多属于 docker 组的用户。所以这些用户中的任何一个都可以启动一个 docker 容器。docker ps将显示所有正在运行的容器,但不会显示哪个用户启动了容器。dockerd 日志似乎也没有指明是哪个用户调用的docker run。有没有办法找出哪个用户启动了给定的容器?

logging docker

20
推荐指数
1
解决办法
2万
查看次数

如何停止“vmmem”进程?

我在 Windows Home 上安装了 docker,它使用 WSL2 作为后端。然而,自从我昨天在上面安装了一个新容器以来,我的电脑风扇每 5 秒就打开一次。我不确定是什么导致计算机超载。Vmmem 仅使用了我的 CPU 的 0.1%,但由于它使用了 1 GB 内存,这可能是问题的根源。我运行 docker stop $(docker ps -aq) 来停止我唯一正在运行的容器,但这没有什么区别。我应该怎么办?

virtual-memory docker windows-10

19
推荐指数
2
解决办法
5万
查看次数

带有 Docker Windows 的 Wifi 适配器问题(本机、HYPER-V)

我刚收到一台全新的工作笔记本电脑,并立即安装了适用于 Windows 的原生 Docker 版本。

但是,我看到一个问题,每次通过 Hyper-V 启用 Docker 的新网络适配器(vEthernet DockerNAT)时,我的 Wifi 适配器都被禁用,因此我无法访问互联网。

每当我尝试启用 Wifi 适配器时,它都会立即自行禁用,让我的互联网恢复的唯一方法是停用 DockerNAT HyperV 适配器。

这肯定有效,否则他们不会公开发布 Windows Native 版本?

有没有人遇到过这个问题并知道如何解决它?(这是我第一次接触 Hyper-V)

networking network-adapter hyper-v docker windows-10

18
推荐指数
2
解决办法
2万
查看次数

如何在 Windows 容器中以管理员身份运行脚本

我正在尝试在基于windowsservercoreDocker映像上安装Windows Enterprise WDK。该应用程序通过解压缩进行安装,我已经完成了该操作并将该映像提交给了 Docker。现在我需要运行一个设置环境变量的脚本。根据 Enterprise WDK 安装说明,我必须以管理员身份运行此脚本。我直接在我的台式机上完成了这个工作,它可以运行文件。在 Docker 容器内,默认登录用户是

PS C:\> whoami
user manager\containeradministrator
Run Code Online (Sandbox Code Playgroud)

我试过启用管理员帐户。

PS C:\> net user administrator /active:yes
The command completed successfully.
PS C:\> net user administrator Pa$$w0rd
The command completed successfully.
Run Code Online (Sandbox Code Playgroud)

我尝试以管理员身份启动 shell,但用户没有改变。

PS C:\> runas /user:administrator powershell
Enter the password for administrator:
Attempting to start powershell as user "C597C386289A\administrator" ...
PS C:\> whoami
user manager\containeradministrator
Run Code Online (Sandbox Code Playgroud)

如果我运行我的脚本,它无法设置脚本中指定的任何环境值。

建议?

windows docker

18
推荐指数
1
解决办法
2万
查看次数

设置 Docker 容器以使用本地数据库

我正在尝试设置一个 Docker 容器以使用本地数据库。

该图像是https://hub.docker.com/r/tuxgasy/dolibarr/,它建议还创建一个mariadb容器,并将其链接到该容器。

我想将 Dolibarr 容器配置为使用mariadb我的主系统上已有的数据库,该数据库是从我的发行版的主存储库安装的。

这是我第一次尝试设置一个可运行的 Docker 应用程序,而且我不是数据库维护方面的专家,所以我有点迷茫。

我怎样才能做到这一点?请使说明广告尽可能清晰和详细。

我的系统是完全更新的 openSUSE Tumbleweed。

linux database opensuse mariadb docker

18
推荐指数
1
解决办法
5万
查看次数

什么是 .dockerenv 和 .dockerinit?

我的容器文件系统根目录中的.dockerenv.dockerinit文件是什么?它们是如何使用的?有关于这些文件的文档吗?

root@18ceee4f9041:/# ls -al /
total 72
drwxr-xr-x.  21 root root 4096 Jan  4 20:45 .
drwxr-xr-x.  21 root root 4096 Jan  4 20:45 ..
-rwxr-xr-x.   1 root root    0 Jan  4 20:45 .dockerenv
-rwxr-xr-x.   1 root root    0 Jan  4 20:45 .dockerinit
Run Code Online (Sandbox Code Playgroud)

其他人也问过类似的问题,但我找不到答案:

我问是因为我正在处理我的 docker 执行工具中的一个错误,称为 scuba。您可以通过--usertodocker run设置容器中进程的 UID,但它在 /etc/passwd 中没有条目,因此我正在研究在容器启动期间创建用户的选项。

(交叉发布在 Stack Overflow 上,可能会被关闭。)

docker

17
推荐指数
2
解决办法
2万
查看次数