Questions tagged «docker»

Docker是构建和运行容器的工具。接受有关Dockerfile,操作和架构的问题。有关在生产环境中运行docker的问题可能会在ServerFault(https://serverfault.com/)上找到更好的响应。docker标签很少单独使用,通常与docker-compose和kubernetes等其他标签搭配使用。


1
Ubuntu Docker映像中的systemd和systemctl [关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 4年前关闭。 改善这个问题 问题 systemd在Ubuntu Docker映像中似乎无效或不可用。 设定 我正在从中运行Docker容器 ubuntu:16.04和ubuntu:16.10镜像。 测验 如果我执行: systemctl status ssh 在里面 16,04容器中 结果是错误 Failed to connect to bus: No such file or directory 在16.10容器中的错误是:bash: systemctl: command not found。 如果我which systemctl在16.04容器中找到systemctl,但在16.10容器中。 我发现了 /lib/systemd存在。 我尝试使用以下方式安装systemd: apt-get install systemd libpam-systemd systemd-ui 然后 which systemctl找到systemctl16.10 但systemctl status ssh仍然给出错误Failed …

7
Dockerfile中的条件ENV
是否可以ENV根据构建的值在Dockerfile中有条件地设置变量ARG? 例如:类似 ARG BUILDVAR=sad ENV SOMEVAR=if $BUILDVAR -eq "SO"; then echo "hello"; else echo "world"; fi 更新:基于Mario答案的当前用法: ARG BUILD_ENV=prod ENV NODE_ENV=production RUN if [ "${BUILD_ENV}" = "test" ]; then export NODE_ENV=development; fi 但是,先运行--build-arg BUILD_ENV=test然后进入主机,我仍然可以 docker run -it mycontainer bin/bash [root@brbqw1231 /]# echo $NODE_ENV production


10
如何在Docker中从Private 1.0注册表中搜索图像?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 6个月前关闭。 改善这个问题 我做了一个私人注册表,curl xx.xx.xx.xx:5000还可以。我通过执行以下操作将映像推送到docker私有注册表中: docker push xx.xx.xx.xx:5000/centos 返回: http://xx.xx.xx.xx:5000/v1/repositories/centos/tags/latest 问题是如何从注册表网站或命令中获取所有图像。我无法从Docker Registry API找到任何信息。有人帮忙吗?:)

6
Docker容器日志占用了我所有的磁盘空间
我在VM上运行容器。我的容器默认将日志写入/var/lib/docker/containers/CONTAINER_ID/CONTAINER_ID-json.log文件,直到磁盘已满。 当前,我必须手动删除此文件,以避免磁盘已满。我读到在Docker 1.8中会有一个参数来旋转日志。您会建议什么作为当前解决方法?


5
如何使用docker-compose命令覆盖COMPOSE_HTTP_TIMEOUT的默认值
我有docker-compose,它会获取一些图像并构建一个图像。运行docker-compose up时,出现以下错误 错误: HTTP请求花了太长时间才能完成。使用--verbose重试以获得调试信息。如果由于网络状况较慢而经常遇到此问题,请考虑将COMPOSE_HTTP_TIMEOUT设置为更高的值(当前值:60)。 问题:如何通过COMPOSE_HTTP_TIMEOUTwithdocker-compose命令?

5
在docker-compose中使用--add-host或extra_hosts
我docker-compose用来运行一个测试环境,它由大约5个不同的容器组成。容器间链接和共享卷(从)开始工作非常好。我还向主机公开了一些端口,效果很好。 我所缺少的是在不对IP地址进行硬编码的情况下将一些真实服务器链接到此环境的方法。使用docker run,您可以用来--add-host在/etc/hosts文件中添加另一行。有什么办法可以与docker-compose做类似的事情吗?

3
了解Docker中的用户文件所有权:如何避免更改链接卷的权限
考虑以下琐碎的Dockerfile: FROM debian:testing RUN adduser --disabled-password --gecos '' docker RUN adduser --disabled-password --gecos '' bob 在没有其他任何工作目录中。构建docker映像: docker build -t test . 然后在容器上运行bash脚本,将工作目录链接到bob的主目录上的新子目录中: docker run --rm -it -v $(pwd):/home/bob/subdir test 谁拥有subdir容器中的物品?在容器上,运行: cd /home/bob/subdir ls -l 我们看到的广告: -rw-rw-r-- 1 docker docker 120 Oct 22 03:47 Dockerfile 圣烟!docker拥有内容!回到容器外部的主机上,我们看到原始用户仍然拥有Dockerfile。让我们尝试修复bobhome目录的所有权。在容器上,运行: chown -R bob:bob /home/bob ls …

2
Dockerfile:在一行中设置多个环境变量
我给人的印象是,可以如下将环境变量设置在一行上,以最大程度地减少中间图像。 FROM alpine:3.6 ENV RUBY_MAJOR 2.4 \ RUBY_VERSION 2.4.1 \ RUBY_DOWNLOAD_SHA256 4fc8a9992de3e90191de369270ea4b6c1b171b7941743614cc50822ddc1fe654 \ RUBYGEMS_VERSION 2.6.12 \ BUNDLER_VERSION 1.15.3 但是,基于此代码段运行容器并调用,# set |grep RU我看到变量没有被单独分配,而是被组合为单个字符串。 RUBY_MAJOR='2.4 RUBY_VERSION 2.4.1 RUBY_DOWNLOAD_SHA256 4fc8a9992de3e90191de369270ea4b6c1b171b7941743614cc50822ddc1fe654 RUBYGEMS_VERSION 2.6.12 BUNDLER_VERSION 1.15.3' 但是,如果我按如下所示显式设置每个变量,则可以得到预期的输出,并且在调用变量时没有错误。 ENV RUBY_MAJOR 2.4 ENV RUBY_VERSION 2.4.1 ENV RUBY_DOWNLOAD_SHA256 4fc8a9992de3e90191de369270ea4b6c1b171b7941743614cc50822ddc1fe654 ENV RUBYGEMS_VERSION 2.6.12 ENV BUNDLER_VERSION 1.15.3 问题:是否可以将环境变量的设置合并在一行上?如果是这样,我该怎么办?这是一个好习惯吗?

12
如何在代理后面的dockerfile中运行`apt-get`?
我正在使用docker(版本0.8.1,构建a1598d1)运行虚拟机(Ubuntu 13.10)。我正在尝试使用dockerfile构建映像。首先,我想更新软件包(使用下面的代码-代理被混淆),但是apt-get由于错误:而超时Could not resolve 'archive.ubuntu.com'。 FROM ubuntu:13.10 ENV HTTP_PROXY <HTTP_PROXY> ENV HTTPS_PROXY <HTTPS_PROXY> RUN export http_proxy=$HTTP_PROXY RUN export https_proxy=$HTTPS_PROXY RUN apt-get update && apt-get upgrade 我还在主机系统中运行了以下命令: sudo HTTP_PROXY=http://<PROXY_DETAILS>/ docker -d & 主机能够正常运行apt-get。 如何更改dockerfile以允许其从容器内部到达ubuntu服务器? 更新资料 我在CentOS中运行了代码(将更FROM ubuntu:13.10改为FROM centos),并且运行良好。Ubuntu似乎有问题。
76 docker  apt  http-proxy 

9
无法停止或重新启动Docker容器
尝试停止或重新启动Docker容器时,出现以下错误消息: $ docker restart 5ba0a86f36ea Error response from daemon: Cannot restart container 5ba0a86f36ea: [2] Container does not exist: container destroyed Error: failed to restart containers: [5ba0a86f36ea] 但是当我跑步时 $ docker logs -f 5ba0a86f36ea 我可以看到日志,因此显然容器确实存在。有任何想法吗? 编辑: 抱歉,我忘了提一下: 运行时,docker ps -a我看到容器已启动并正在运行。但是,其中的应用程序出现故障,因此我想重新启动它,或者只是在线获取该应用程序的新版本。但是,当我无法停止并删除容器时,也无法启动并运行要侦听同一端口的新应用程序。
76 docker 

7
如何在Docker 1.9+中列出命名卷的内容?
Docker 1.9添加了命名卷,所以我.. docker volume create --name postgres-data docker volume ls 我得到 local postgres-data 到目前为止一切都很好。 所以我怎么看命名卷中的内容?有没有一种方法可以在主机系统上对其进行cd。就像我可以为挂载的主机目录一样吗?
76 docker 

1
如何在容器上使用本地文件?
我正在尝试创建一个容器来运行程序。我正在使用预配置映像,现在需要运行程序。但是,这是一个机器学习程序,我需要计算机上的数据集才能运行。 该文件太大,无法复制到容器中。最好是在容器中运行的程序搜索了我计算机本地目录中的数据集,但我不知道该怎么做。 有什么办法可以通过某些docker命令来执行此参考吗?还是使用Dockerfile?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.