我在 Dockerfile 中有以下行。
RUN apt-get install -y tzdata
Run Code Online (Sandbox Code Playgroud)
当我运行它时,它会询问我的输入。在我提供输入后,它挂在那里。有谁知道如何解决这个问题?
Step 25/25 : RUN apt-get install -y tzdata
---> Running in ee47a1beff84
Reading package lists...
Building dependency tree...
Reading state information...
The following NEW packages will be installed:
tzdata
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 189 kB of archives.
After this operation, 3104 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 tzdata all 2018i-0ubuntu0.18.04 [189 kB]
debconf: unable …
Run Code Online (Sandbox Code Playgroud) 我有以下 Kubernetes 作业配置:
---
apiVersion: batch/v1
kind: Job
metadata:
name: dbload
creationTimestamp:
spec:
template:
metadata:
name: dbload
spec:
containers:
- name: dbload
image: sdvl3prox001:7001/pbench/tdload
command: ["/opt/pbench/loadTpcdsData.sh", "qas0063", "dbc", "dbc", "1"]
restartPolicy: Never
imagePullSecrets:
- name: pbenchregkey
status: {}
Run Code Online (Sandbox Code Playgroud)
当我完成kubectl create -f dbload-deployment.yml --record
这项工作并创建了一个 pod 时,Docker 容器运行完成,我得到以下状态:
$ kubectl get job dbload
NAME DESIRED SUCCESSFUL AGE
dbload 1 1 1h
$ kubectl get pods -a
NAME READY STATUS RESTARTS AGE
dbload-0mk0d 0/1 Completed 0 1h
Run Code Online (Sandbox Code Playgroud)
这项工作是一次性交易,我需要能够重新运行它。如果我尝试使用kubectl create
命令重新运行它,我会收到此错误 …
使用 base ubuntu:12.04
,ifconfig
在容器中不可用,虽然ip
命令可用,这是为什么?以及,如何进入ifconfig
容器?
当我尝试在运行时通过 Dockerfile 中的 CMD 指令执行两个命令时,不明白发生了什么。我认为这应该有效:
CMD ["/etc/init.d/nullmailer", "start", ";", "/usr/sbin/php5-fpm"]
Run Code Online (Sandbox Code Playgroud)
但它不起作用。容器尚未启动。所以我不得不这样做:
CMD ["sh", "-c", "/etc/init.d/nullmailer start ; /usr/sbin/php5-fpm"]
Run Code Online (Sandbox Code Playgroud)
我不明白。这是为什么?为什么第一行不是正确的方法?有人可以向我解释这些“CMD shell 格式与 JSON 格式等”的内容。用简单的话来说。
请注意 -正如预期的那样,command:
指令 indocker-compose.yml
也是如此。
我正在部署一个符合12 因素建议的 3rd 方应用程序,其中一点告诉应用程序日志应该打印到 stdout/stderr:然后集群软件可以收集它。
但是,应用程序只能写入文件或系统日志。我该如何打印这些日志?
我在办公室工作,我的笔记本电脑连接了互联网,但受到严格控制。我不允许在其上安装未经授权的软件。
我的开发工作站可以随意使用,但它没有互联网连接。
有什么方法可以让我从集线器下载 Docker 图像作为文件,然后我可以将它连接到我的开发工作站?类似于如何下载 RPM 或 Ruby Gems 并将它们刻录到 CD?或者是使用“docker pull”命令下载图像的唯一方法?
我在正在运行的 docker 容器上设置主机名时遇到问题。我也无法理解如何在映像启动后指定主机名。
我从我下载的图像启动了一个容器:
sudo docker run -p 8080:80 -p 2222:22 oskarhane/docker-wordpress-nginx-ss
Run Code Online (Sandbox Code Playgroud)
但是我忘了通过-h
;指定主机名 既然容器正在运行,我该如何指定主机名?
我有安装和配置软件的 docker 容器。
没有任何程序应该一直启动/运行。
我想要什么 - 它能够根据外部事件启动一些命令。喜欢:
docker exec mysupercont /path/to/mycommand -bla -for
Run Code Online (Sandbox Code Playgroud)
和
docker exec mysupercont /path/to/myothercommand
Run Code Online (Sandbox Code Playgroud)
但是当容器停止时“exec”是不可能的,而且这个容器里面有一些“工作”数据,用于该命令,所以我不能使用
docker run ...
Run Code Online (Sandbox Code Playgroud)
每次,因为它从图像重新创建容器并破坏我的数据。
保持此类容器运行的“正确”和“最佳”方法是什么?我可以在里面启动哪个命令?
我在 Ubuntu 14.04 LTS 上遇到了我的 Docker 容器问题。Docker 正常工作了两天,然后突然我失去了容器内的所有网络连接。下面的错误输出最初让我相信这是因为 apt-get 试图通过 IPv6 解析 DNS。
我在我的主机上禁用了 IPv6,仍然删除了所有图像,拉取了基本的 ubuntu,但仍然遇到了问题。
我将我的 /etc/resolve.conf 名称服务器从本地 DNS 服务器更改为 Google 的公共 DNS 服务器(8.8.8.8 和 8.8.4.4),但仍然没有运气。我还在 /etc/default/docker 的 DOCKER_OPTS 中将 DNS 设置为 Google 并重新启动了 docker。
我也试过拉 coreos,yum 也无法解析 DNS。
这很奇怪,因为虽然 DNS 不起作用,但当我 ping apt-get 无法解析的相同更新服务器时,我仍然收到响应。
我不是在代理后面,我在一个非常标准的本地网络上,这个版本的 Ubuntu 是最新的(我两天前安装的更接近 docker)。
我已经通过其他关于 stackoverflow 和 github 问题的帖子对此进行了彻底的研究,但没有找到任何解决方案。我对如何解决这个问题一无所知,有人可以帮忙吗?
错误信息
? arthouse git:(docker) ? docker build --no-cache .
Sending build context to Docker daemon 51.03 MB
Sending build context to Docker daemon
Step 0 …
Run Code Online (Sandbox Code Playgroud) Docker 官方文档提到我需要运行docker rm -v containername
才能专门删除数据卷。但是,如果您已经删除了所有引用特定数据卷的容器,您会怎么做?
docker ×10
lxc ×2
cluster ×1
coreos ×1
kubernetes ×1
linux ×1
logging ×1
networking ×1
timezone ×1
ubuntu ×1