标签: docker

如何从 Dolphin 文件管理器中隐藏 Docker 卷?

KDE Plasma 用户在这里。

Dolphin 文件管理器在其侧边栏部分显示我的所有 Docker 卷devices,我想阻止它们出现在此处,而无需手动隐藏它们。

在此输入图像描述

有什么办法可以做到这一点吗?或者根据路径过滤掉设备(所有 Docker 卷都来自/var/lib/docker/overlay2/<hash>

dolphin-file-manager docker kde-plasma-5

6
推荐指数
0
解决办法
762
查看次数

适用于 Windows GUI 的 Docker Desktop 未启动

我正在使用 Windows 版 Docker 桌面。它“突然”没有开始。这Docker Desktop.exe进程在后台空闲运行。但没有 GUI,甚至没有托盘图标。

\n

它大约在同一时间发生在两台运行 Windows 10 的计算机上。所以我怀疑是某些 Windows 更新造成的。在一台机器上,重新安装 Docker Desktop 解决了该问题。但在另一台机器上,重新安装并没有帮助。在那台机器上,我大约也在同一时间尝试升级到 Windows 11,但失败了(系统回滚到 Windows 10)。我怀疑这可能是导致问题的原因。

\n

我尝试过的:

\n
    \n
  • 删除并重新添加所有 Windows VM 功能:Hyper-V虚拟机平台Windows 虚拟机管理程序平台适用于 Linux 的 Windows 子系统
  • \n
  • 删除并重新安装 Docker Desktop
  • \n
  • 我下载了不见了C:\\Program Files\\Linux Containers
  • \n
  • Enable-WindowsOptionalFeature -Online -FeatureName containers -All
  • \n
\n
\n

这是以下的输出com.docker.diagnose.exe check

\n
[005:14:38:31.140][I] ipc.NewClient: 0a5ab2b4-com.docker.diagnose -> \\\\.\\pipe\\dockerBackendV2 com.docker.service.exe\n[goroutine 1 [running, locked to thread]:\n[win/backend/pkg/service.NewClientForPath(...)\n[   win/backend/pkg/service/service.go:26\n[win/backend/pkg/service.NewClient(...)\n[   win/backend/pkg/service/service.go:20\n[common/pkg/diagkit/gather/diagnose.init()\n[ …
Run Code Online (Sandbox Code Playgroud)

windows docker windows-subsystem-for-linux docker-for-windows wsl2

6
推荐指数
1
解决办法
8214
查看次数

如果 unix:///var/run/docker.sock 不可用且 docker 正在运行,如何连接到 Docker 守护进程

我在使用 snap 安装 docker 时遇到了问题,然后我转移到了 apt。这是在生产服务器上。为了减少停机时间,我执行了以下操作:

  1. 删除了快照运行容器
  2. /snap/bin已经从...删除PATH
  3. 按照此处推荐安装了 docker
  4. 重建并启动容器
  5. sudo snap stop docker使用和禁用 docker 的 snap 功能sudo snap remove docker

一切都很好。第二天,我尝试重新启动用于监控的容器,但运行时出现以下错误sudo docker ps -a

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Run Code Online (Sandbox Code Playgroud)

守护进程正在运行:

root       42709  0.2  0.3 2344140 54276 ?       Ssl  Sep07   5:30 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root       42868  0.0  0.0 1813868 5944 ?        Sl   Sep07   0:16 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8072 -container-ip 172.19.0.3 …
Run Code Online (Sandbox Code Playgroud)

linux apt docker snap

6
推荐指数
1
解决办法
6582
查看次数

docker 容器无法在桥接网络模式下访问互联网

TL;DR 如何修复网桥 docker0,以便在网络模式桥接时能够从我的容器访问互联网?


几周前发生的一次停电显然破坏了服务器网络配置,并且有一段时间,DHCP 服务器没有为计算机分配正确的 IP。我设法通过配置网络来解决这个问题netplan(我不能保证在停电之前完成,它是由另一个团队管理的)。

然而,docker当网络模式为 时,容器无法访问互联网bridge

从主机上,我可以ping google.com并且 DNS 解析工作正常。其他一切似乎也都有效。但是,当我启动一个容器(例如:)时 docker run -it --rm python:3.6.1 /bin/bashping不再起作用了。

所以这是我检查过的几件事:

  1. ping在容器内不起作用:

ping google.com只是挂起:

root@85deb9b2ae95:/# ping google.com
^C
Run Code Online (Sandbox Code Playgroud)

ping 8.8.8.8丢失所有包裹:

root@85deb9b2ae95:/# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
^C--- 8.8.8.8 ping statistics ---
9 packets transmitted, 0 packets received, 100% packet loss
Run Code Online (Sandbox Code Playgroud)
  1. /etc/resolv.conf在 docker 容器中看起来没问题:
root@85deb9b2ae95:/# cat /etc/resolv.conf 
# This file is managed by man:systemd-resolved(8). Do …
Run Code Online (Sandbox Code Playgroud)

networking linux dns docker

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

在 docker 中设置 VPN

我正在将 docker 容器连接在一起。我已经探索了 docker 中提供的网络选项。现在我想创建一种 VPN 设置来连接 docker 节点和容器。有什么办法可以建立VPN。

networking vpn virtualization docker

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

CentOS on Docker:如何安装 doc 文件?

我正在尝试在基于 CentOS 6.5 的 Docker 容器中安装 Kolab 组件。乍一看,官方软件包的安装似乎没有问题。但是之后,当我尝试运行安装脚本时,发生了几个错误。在做了一些研究之后,我发现安装脚本试图使用位于/usr/share/doc/kolab-webadmin-3.1.5. 根据repoquery -l kolab-webadmin,sql文件确实包含在包中。但是,它没有安装。

我怀疑这在某种程度上是 Docker 的一个“特性”,它试图避免将不必要的文档文件安装到容器中,但找不到任何关于它的信息。

有没有办法通过yum安装丢失的文件?


更新

这是一个说明问题的最小示例:首先创建一个新的 centos 容器:

docker run -t -i centos:centos6 /bin/bash
Run Code Online (Sandbox Code Playgroud)

在里面,安装 yum-utils 包:

yum install -y yum-utils
Run Code Online (Sandbox Code Playgroud)

之后,如果您使用 repoquery 检查 yum-utils 包的内容

repoquery -l yum-utils
Run Code Online (Sandbox Code Playgroud)

您会注意到该软件包包含 /usr/share/doc/yum-utils-1.1.30 下的文件。但是,此文件夹不存在。

centos yum docker

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

Docker“hello world”示例不起作用。“无此文件或目录”

我对使用 Docker(.io) 完全陌生,所以我刚刚在主站点上进行 RTFM,并在他们的示例“Hello world”中很早就遇到了问题。似乎其他一些人也有同样的症状,但我在谷歌上搜索的修复程序都没有对我有用。

环境:Linux Mint 17 尝试按照此处的说明进行操作:http : //docs.docker.com/userguide/dockerizing/

基本上:

$ sudo docker run ubuntu:14.04 /bin/echo 'Hello world'

其中(对我而言)的输出是:

 #  sudo docker run ubuntu:14.04 /bin/echo 'Hello world'
 2014/07/25 07:39:22 no such file or directory
 # 
Run Code Online (Sandbox Code Playgroud)

我已经按照 docs.docker.com 中的步骤安装了 docker。

更多特定于 docker 的系统信息,以及下载的 ubuntu 镜像:

 # docker info
 Containers: 3
 Images: 11
 Storage Driver: aufs
  Root Dir: /var/lib/docker/aufs
  Dirs: 33
 Execution Driver: native-0.1
 Kernel Version: 3.13.0-32-generic
 WARNING: No swap limit support


 ComputerName ~ # docker version
 Client version: …
Run Code Online (Sandbox Code Playgroud)

linux-mint ubuntu docker

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

具有多个包和共享源的 Docker 工作流程

假设我想将 Docker 用于一个应用程序,它由两部分组成。这些部分不同,但它们有一些共享库。

所以,我有两个文件夹:

part1/
    Dockerfile
    src/
part2/
    Dockerfile
    src/
Run Code Online (Sandbox Code Playgroud)

但是,我希望他们共享一些文件(例如,库),因为 DRY。不幸的是,似乎没有任何好的目录结构可以让我这样做:Dockerfiles 不能引用父文件夹,我不能将它们都放在顶层文件夹中,因为我不允许更改Dockerfile 的名称。

有些文件需要在建筑物一步,所以我不能使用的“绑定安装卷”选项docker run-docker run为时已晚。

我看到这些选项,但我不喜欢它们:

  1. 我可以添加一个名为 的文件夹shared/,然后使用 hack 将其“放入”我的两个应用程序文件夹中。这些黑客包括以某种方式安装它(这很烦人,需要我每次都这样做,而且我试图出售 Docker 的同事无法解释)或在构建之前复制它(如果我将构建隐藏到构建中,则可行) -script,在构建之前复制文件夹并在构建之后立即删除它;但是,即使共享文件夹没有更改,它也会使构建缓存无效,并且容易出现错误)

  2. 我可以将项目拆分为 3 个不同的项目,并使用 git-sub-something 将它们链接在一起。这种配置很难使用(或者我不知道该怎么做)。

我认为我的情况并不少见,尤其是在座右铭“将应用程序解耦到多个容器中”的情况下。所以可能有很好的方法来处理它。有什么线索吗?

git shared-access docker

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

我可以让 vim 安装包并在后台关闭吗?

我一直在玩 Dockerfiles,在设置开发环境时,有一个手动步骤我还没有解决。要在我的 vimrc 中安装这些包,我必须打开 vim,然后它会下载所有包并说按 Enter 继续。我想在 Dockerfile 中将这一步作为 RUN 命令执行。我试过使用vim -c 'q',它会:q在 vim 打开时运行命令,但是自动捆绑安装脚本仍然需要按 Enter,而且无论如何它都不起作用,因为 vim 抱怨输入和输出不是到终端。

我想用 Dockerfiles 而不是图像来做到这一点

这是我的 .vimrc 中似乎相关的部分

    " Setting up Vundle - the vim plugin bundler
        let iCanHazVundle=1
        let vundle_readme=expand('~/.vim/bundle/vundle/README.md')
        if !filereadable(vundle_readme)
            echo "Installing Vundle.."
            echo ""
            silent !mkdir -p ~/.vim/bundle
            silent !git clone https://github.com/gmarik/vundle ~/.vim/bundle/vundle
            let iCanHazVundle=0
        endif
        set rtp+=~/.vim/bundle/vundle/
        call vundle#rc()
        call GetBundles()
        if iCanHazVundle == 0
            echo "Installing Bundles, please ignore key map error messages"
            echo …
Run Code Online (Sandbox Code Playgroud)

vim docker

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

如何在需要“服务器重启”的 Docker 容器(Windows 2016 Server)上安装 Windows 功能?

我尝试NetworkController使用 Powershell 在 Windows 2016 Server TP4 上的 docker 容器上安装 Windows 功能“ ”。运行“ Add-WindowsFeature NetworkController”后,我收到消息:

“您必须重新启动此服务器才能完成安装过程。”

在此处输入图片说明

当我现在使用 Get-WindowsFeature 再次检查(还没有做任何其他事情)时,它的安装状态为“InstallPending”。

在此处输入图片说明

现在我不确定“重新启动此服务器”是什么意思 100%,但我想这意味着我应该重新启动主机,因为没有其他东西可以重新启动(并且容器本身只是一个容器,而不是虚拟机)使用 Hyper-V 方法)。

所以我尝试以下方法:

方法 (1)

我使用 停止 docker 容器docker stop iisdemo,然后重新启动主机(我的 Windows 2016 服务器),然后使用docker start iisdemo.

但是当我检查 NetworkController 时,它仍然没有安装。

在此处输入图片说明

方法 (2)

在第二次尝试中,我添加了该功能,然后重新启动 docker 容器而不重新启动 Windows 2016 服务器,只需运行

dock restart iisdemo.

现在发生了一些奇怪的事情,当我尝试通过 来检查特征时Get-WindowsFeature *network*,收集数据的过程停止在 57% 并且容器本身存在。

在此处输入图片说明

当我再次附加到 docker 镜像时:

> docker start iisdemo
> docker attach iisdemo
> …
Run Code Online (Sandbox Code Playgroud)

powershell container docker windows-server-2016

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