(在 Centos 上通过 Docker)
我知道我可以使用visudo. 有没有办法直接从命令行将用户添加到 sudoer 列表中,这样我就不必以交互方式进行操作?
我之所以这么问,是因为我正在尝试配置不具有交互性的 Docker centos 容器。
我正在从具有已发布端口 (3000) 的映像创建容器。我想发布一个新端口 (3030),只有这个,如果我使用,--publish 3030:3030我最终会发布两个端口(3000 和 3030)。
是否可以以某种方式从正在运行的容器中取消发布端口,或者我是否必须从头开始我的映像?
我使用的是 Windows 7、VirtualBox 5.0.4、Docker 工具箱 1.9.0。当我运行快速入门时,我得到:
Creating Machine default...
Running pre-create checks...
Creating machine...
Error creating machine: Error in driver during machine creation: Maximum number of retries (5) exceeded
Looks like something went wrong... Press any key to continue...
Run Code Online (Sandbox Code Playgroud)
但是当我打开 VirtualBox 并查看时,我确实得到了一个正在运行的“默认”VM。在我的 VBox.log 中,我看到(完整文件在这里):
00:00:00.696246 HM: HMR3Init: VT-x w/ nested paging and unrestricted guest execution hw support
Run Code Online (Sandbox Code Playgroud)
所以也许 VT-X 支持对我来说没问题。在日志文件的末尾,我看到 D-Bus 没有安装的不祥之兆:
00:00:46.950561 VMMDev: Guest Log: 00:00:10.018836 vminfo Error: Unable to connect to system D-Bus (3/3): D-Bus not …Run Code Online (Sandbox Code Playgroud) 我试图通过创建一个start.sh使用git bash.
由于通常 docker Terminal 指向的是"C:\Program Files\Git\bin\bash.exe" --login -i "C:\Program Files\Docker Toolbox\start.sh",有什么办法可以让我在 ConEmu 上做一个任务来做到这一点?所以像这样:
我正在运行 Docker 1.12.1。我在用户网络(网桥类型)上有几个容器,每个容器都分配了一个--network-alias. 容器相互正确解析,但主机无法通过其网络别名或主机名解析任何容器。
如何让主机解析任何用户网络上的容器名称?
我已经在使用 Hyper-V 的 Windows 10 机器上安装了 Docker for Windows。
打开一个窗口(Powershell 或常规的旧命令都可以)并键入 后docker run hello-world,我得到以下响应。
Unable to find image 'hello-world:latest' locally
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers).
See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.
Run Code Online (Sandbox Code Playgroud)
或者,最近:
Unable to find image 'hello-world:latest' locally
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on 192.168.65.1:53: read udp 192.168.65.2:44376->192.168.65.1:53: i/o timeout.
See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.
Run Code Online (Sandbox Code Playgroud)
正如我在相关问题中所述,Docker for …
我已经浏览了 StackOverflow 和其他问题/文档 - 包括官方的,但仍然无法启动docker。鉴于这里的最新信息,我们尝试了几个选项:
$ docker daemon
`docker daemon` is not supported on Darwin. Please run `dockerd` directly
16:20:54/Applications $dockerd
-bash: dockerd: command not found
Run Code Online (Sandbox Code Playgroud)
docker-machine 也作为一种选择出现,但这已经有一段时间了。
那么启动docker守护进程的规范方式是什么?如果重要的话,我在Sierra:这docker是今天 17 年 12 月 12 日下载的最新版本。
$docker version
Client:
Version: 17.11.0-ce
API version: 1.34
Go version: go1.9.2
Git commit: 1caf76c
Built: unknown-buildtime
OS/Arch: darwin/amd64
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Run Code Online (Sandbox Code Playgroud)
同样令人担忧的是,所引用的 URI 以unix. 我是否遗漏了一些准备和/或配置步骤?
我dnsmasq在主机中运行,我希望 docker 容器使用它,而不是默认的 Google 服务器( 8.8.8.8)
我的主机/etc/resolv.conf如下所示:
» cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
search mydomain.net
Run Code Online (Sandbox Code Playgroud)
容器的/etc/resolv.conf外观如下:
root@ubuntu:/# cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
search mydomain.net
nameserver 8.8.8.8
nameserver …Run Code Online (Sandbox Code Playgroud) 尝试使用以下命令解压 docker 容器中的文件时:
tar -zvxf training.tar.gz -C data/multi30k
Run Code Online (Sandbox Code Playgroud)
我收到以下错误(train.de是 .tar 文件中的一个文件):
tar: train.de Cannot change ownership to uid 1000, gid 1000: Operation not permitted
Run Code Online (Sandbox Code Playgroud)
但是文件在本地解压就好了。什么可能导致此错误?