标签: docker

为什么我不能使用 docker run cd 到目录?

我需要从特定目录运行应用程序。

$ sudo docker run -P ubuntu/decomposer 'cd /local/deploy/decomposer; ./decomposer-4-15-2014'
2014/10/09 21:30:03 exec: "cd /local/deploy/decomposer; ./decomposer-4-15-2014": stat cd /local/deploy/decomposer; ./decomposer-4-15-2014: no such file or directory
Run Code Online (Sandbox Code Playgroud)

该目录肯定存在,如果我通过交互式运行 bash 连接到 docker,我可以运行上述命令。

$ sudo docker run -i -t ubuntu/decomposer /bin/bash
# cd /local/deploy/decomposer; ./decomposer-4-15-2014
Run Code Online (Sandbox Code Playgroud)

我可以通过指定完整路径来运行我的程序,但是当它期望从当前目录启动时它会崩溃。我能做什么?

docker

58
推荐指数
3
解决办法
12万
查看次数

Vagrant、Docker、Chef 和 OpenStack(或类似产品)之间的关系?

我是一名 Web 开发人员,但我也对一些管理任务感兴趣。因此,从纯管理转向开发运营的新举措对我来说很方便。

无论如何,我有一些问题要将一些事情放入关系中。也许没有,所以我想寻求帮助澄清。

基本上,我想关联的是四种类型的软件(根据我的理解)。确切的产品并不重要,您可以放置​​任何类似的软件作为替代:

  • Vagrant:我的理解是自动创建和管理 VM:设置、启动和停止它们。这可以使用本地 VM 或远程(例如在云平台上)来完成。
  • Docker:一种“轻量级 VM”,基于一些 Linux 内核概念,可用于隔离运行进程,例如在共享 Web 托管环境中。
  • Chef:设置和配置操作系统的工具,例如在 VM 中。
  • OpenStack:一种允许您构建自己的私有云的工具,因此可以与 AWS 之类的东西相媲美。

问题 1:我的解释是对的,还是我对这些消费的某些(或全部)有误?

问题 2:我如何混合所有这些工具?这有什么意义吗?

在我的想象和我的理解中,你可以去

  • 使用 OpenStack 构建您自己的云,
  • 使用 Vagrant 来管理运行在云端的虚拟机,
  • 使用 Chef 来设置这些 VM
  • 最后使用 Docker 在 VM 内运行进程。

这样对吗?如果是这样,你能给我一个关于如何开始使用所有这些的建议(同时使用很多,我还不知道从哪里开始)?

chef lxc openstack vagrant docker

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

无法获得 D-Bus 连接:不允许操作

我正在尝试使用在 Docker 中运行的 CentOS 映像列出服务

systemctl list-units  
Run Code Online (Sandbox Code Playgroud)

但我收到此错误消息:

Failed to get D-Bus connection: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

任何建议可能是什么问题?

centos systemd systemctl docker

56
推荐指数
3
解决办法
15万
查看次数

Docker 使用 Windows 容器而不是 Linux 容器的优缺点?

我正在 Windows 10 上安装 Docker for Windows (CE),第一个屏幕问我:

[ ] 使用 Windows 容器而不是 Linux 容器(这可以在安装后更改)

这似乎是一个重要的决定,但Docker 文档常见问题解答Windows 容器教程没有提供有关为什么我可能会选择其中一个的信息。

对这种选择的后果有一个客观的概述会很有帮助:

  • 一种选择会比另一种更快吗?
  • 该决定是否影响系统资源(RAM、CPU)的使用?
  • 我可以在两种类型上运行相同的图像吗?
  • 一个比另一个更安全吗?

任何可能帮助我得出结论的其他区别将非常受欢迎。

docker windows-10

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

如何在没有 swarm 集群的情况下使用 docker secrets?

目前我们是在单个 docker 容器上运行的应用程序,该应用程序需要将各种敏感数据作为环境变量传递,

我将它们放在运行命令中,这样它们就不会出现在图像中,然后出现在存储库中,但是我最终得到了一个非常不安全的运行命令,

现在,我知道存在 docker 机密,但是,如何在不部署集群的情况下使用它们?或者有没有其他方法来保护这些数据?

此致,

security docker docker-swarm

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

我的 Docker 容器中运行的是哪个操作系统?

大多数时候,使用这两个中的一个,我可以知道我的 Docker 容器中运行的是哪个操作系统(alpine、centOS 等)

但这一次,我说不出来:

bash-4.2$ uname -a       
Linux 6fe5c6d1451c 2.6.32-504.23.4.el6.x86_64 #1 SMP Tue Jun 9 20:57:37 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

bash-4.2$ more /etc/issue
\S
Kernel \r on an \m
Run Code Online (Sandbox Code Playgroud)

有什么方法可以获得它正在运行的操作系统的文本版本?

linux operating-system docker

49
推荐指数
3
解决办法
7万
查看次数

从 Dockerfile 构建时,Debian/Ubuntu 包安装 debconf 不允许非交互式安装

我已经设置了以下环境,以便在 apt-get 安装期间不会询问任何问题/对话框:

ENV DEBIAN_FRONTEND noninteractive    # export DEBIAN_FRONTEND="noninteractive"
Run Code Online (Sandbox Code Playgroud)

这相当于:

export DEBIAN_FRONTEND="noninteractive"
Run Code Online (Sandbox Code Playgroud)

然而,当从 Dockerfile 构建映像时,在一个特定的 Debian/Ubuntu 软件包安装(使用 apt-get install)结束时,软件包配置 debconf 说:

debconf: unable to initialize frontend: Noninteractive    # export DEBIAN_FRONTEND="noninteractive"
debconf: (Bareword "Debconf::FrontEnd::Noninteractive" not allowed while "strict subs" in use at (eval 35) line 3, <> line 1.)
debconf: falling back to frontend: Noninteractive
Subroutine BEGIN redefined at (eval 36) line 2, <> line 1.
Run Code Online (Sandbox Code Playgroud)

哇...我发现我的错误。无法在 Dockerfile 的 ENV 行中添加注释。我要回答自己,因为我确定这会咬其他人......

docker

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

Docker COPY 问题 - “没有这样的文件或目录”

在我的 Dockerfile 中,我有以下“复制”语句:

# Copy app code
COPY /srv/visitor /srv/visitor
Run Code Online (Sandbox Code Playgroud)

不用说,在我的主机系统中,在“/srv/visitor”目录下,确实有我的源代码:

[root@V12 visitor]# ls /srv/visitor/
Dockerfile  package.json  visitor.js
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试使用此 Dockerfile 构建映像时,它会在应该发生“复制”的步骤中挂起:

Step 10 : COPY /srv/visitor /srv/visitor
INFO[0155] srv/visitor: no such file or directory
Run Code Online (Sandbox Code Playgroud)

它说没有这样的目录,但显然有。

有任何想法吗?

更新1:

有人指出我错了,因为我理解构建上下文的方式。该建议相当于将“COPY”语句更改为:

COPY . /srv/visitor
Run Code Online (Sandbox Code Playgroud)

问题是我是这样处理的,构建过程在下一步就停止了:

RUN npm install
Run Code Online (Sandbox Code Playgroud)

它说了一些类似“找不到 package.json 文件”的内容,但显然有一个。

更新 2:

我尝试在 Dockerfile 中使用此更改运行它:

COPY source /srv/visitor/
Run Code Online (Sandbox Code Playgroud)

尝试运行 npm 时它停止了:

Step 12 : RUN npm install
 ---> Running in ae5e2a993e11
npm ERR! install Couldn't read dependencies
npm ERR! Linux 3.18.5-1-ARCH
npm …
Run Code Online (Sandbox Code Playgroud)

node.js docker

48
推荐指数
3
解决办法
14万
查看次数

Docker Compose 第 2 版“卷”语法应该是什么样子的?

使用Docker Compose v1.6.0+,现在有一个新的/版本 2 文件语法docker-compose.yml。这些更改包括一个名为 的单独顶级密钥volumes。这允许在一个地方“集中”卷定义。

我想要做的是在那里命名卷,并在我的本地主机磁盘上有一个单一的卷引用多个路径。下面是一个例子,抛出一个以 aTraceback结尾的异常

AttributeError: 'list' object has no attribute 'items'
Run Code Online (Sandbox Code Playgroud)

示例docker-compose.yml

version: '2'

services:
  db:
    image: postgres
    volumes:
      - database:/var/lib/postgres/data

  php:
    image: php-fpm:5.6
    volumes:
      - phpconf:/etc/php/conf.d

  namedvolume:
    container_name: namedvolume
    build: ./Docker/Testvolume
    volumes: 
      - ./Docker/Testvolume/shareme

volumes:
  database:
    - ./Docker/Postgres/db:ro
    - ./Docker/Postgres/ini
  phpconf:
    - ./Docker/PHP-FPM/conf
  singledir: ./Docker/foo
  completemap: ./Docker/bar:/etc/service/conf.d
  - namedvolume:/etc/service/conf.d # < this was a separate attempt w/o the other keys
  … ?
Run Code Online (Sandbox Code Playgroud)

到目前为止,我通读了所有Docker …

docker docker-compose

46
推荐指数
4
解决办法
9万
查看次数

如何使用 AMI 在 AWS EC2 实例上安装 Docker(CE/EE 更新)

在运行 AMI 的 AWS EC2 实例上安装 Docker 的当前方法是什么?已经发布了 Docker 企业版,现在我想知道是否有任何变化。到现在为止,我一直在使用yum install docker并且现在确实获得了 Docker 版本1.12.6, build 7392c3b/1.12.6(2017 年 3 月 3 日)。但是,GitHub 上的 Docker 存储库告诉我已经有更新的版本了。

我记得有官方多克尔(包)库名为包docker-engine更换docker前一段时间,现在他们似乎分成了包成docker-cedocker-ee,其中如“不支持红帽企业Linux泊坞社区版(CE泊坞窗)。” [来源]

那么,使用上述方法在运行 AMI 的 EC2 实例上获取最新的稳定 Docker 版本是否正确,或者我是否需要从其他地方提取软件包(如果是,是 CE 还是 EE)?

installation amazon-ami amazon-ec2 amazon-web-services docker

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