Questions tagged «docker»

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


4
如何在Dockerfile CMD中使用变量?
在我的Dockerfile中: ENV PROJECTNAME mytestwebsite CMD ["django-admin", "startproject", "$PROJECTNAME"] 错误: CommandError: '$PROJECTNAME' is not a valid project name 最快的解决方法是什么?Docker是否有计划“修复”或在更高版本的Docker中引入此功能? 注意:如果我从Docker文件中删除CMD行,然后运行Docker容器,则能够从容器内部手动运行Django-admin startproject $ PROJECTNAME,它将创建项目...
102 docker  dockerfile 

4
Docker查看退出容器的日志
有什么办法可以查看已退出的容器的日志? 我可以使用来获取已退出容器的容器ID,docker ps -a但是我想知道它在运行时发生了什么。
102 docker 

14
Docker构建“无法解析'archive.ubuntu.com'” apt-get无法安装任何内容
我一直在尝试在以前可以使用的各种文件上运行Docker构建,现在不再使用了。 一旦Docker文件包含要安装软件的任何行,它将失败并显示一条消息,指出未找到该软件包。 RUN apt-get -y install supervisor nodejs npm 日志中显示的常见消息是 Could not resolve 'archive.ubuntu.com' 知道为什么不安装任何软件吗?
101 docker  apt-get 

2
具有Docker容器的DC / OS上的Marathon vs Kubernetes vs Docker Swarm
我正在寻找在DC / OS上运行Docker容器时是否搭配Marathon和Chronos,Docker Swarm或Kubernetes的利弊。 例如,什么时候使用Marathon / Chronos比使用Kubernetes更好,反之亦然? 目前,我主要是在进行实验,但希望我们会在夏季之后开始在生产中使用这些服务之一。这可能会取消Docker Swarm的资格,因为我不确定届时它是否可以投入生产。 我喜欢Docker Swarm的地方在于,它实质上只是“ Docker命令”,您不必学习全新的知识。我们已经在使用docker-compose,并且可以与Docker Swarm配合使用(至少在理论上是这样),所以这将是一个很大的优势。我对Docker Swarm的主要关注是,它能否涵盖在生产环境中运行系统所需的所有用例。

14
如何在Docker中安装NVM?
我正在构建一个新的Docker映像,并且希望安装NVM,以便可以管理nodejs。 阅读有关如何安装NVM的文档时,他们提到要开始使用NVM,您需要获取.bashrc文件的源。 我尝试在Dockerfile中进行设置,但到目前为止,构建失败并显示以下错误: “ bash:nvm:找不到命令” 这是我的Dockerfile中的相关行: ADD files/nvm_install.sh /root/ RUN chmod a+x /root/nvm_install.sh RUN bash -c "/root/nvm_install.sh" RUN bash -l -c "source /root/.bashrc" RUN cd /root RUN bash -l -c "nvm install 0.10.31" 这是尝试构建的输出: docker build -t nginx_dock。 Step 0 : FROM ubuntu ---> 826544226fdc Step 1 : MAINTAINER dficociello …
101 node.js  docker  nvm 

11
如何自定义官方PostgreSQL Docker映像的配置文件?
我正在使用官方的Postgres Docker映像尝试自定义其配置。为此,我使用命令sed来更改max_connections例如: sed -i -e"s/^max_connections = 100.*$/max_connections = 1000/" /var/lib/postgresql/data/postgresql.conf 我尝试了两种方法来应用此配置。第一种是通过将命令添加到脚本并将其复制到init文件夹“ /docker-entrypoint-initdb.d”中。第二种方法是使用“ RUN”命令直接在我的Dockerfile中运行它们(此方法在非官方的Postgresql映像(配置文件的路径不同于“ / etc / postgres / ...”)下可以很好地工作)。在这两种情况下,更改均会失败,因为缺少配置文件(我认为尚未创建)。 我应该如何更改配置? 编辑1: 这是用于创建映像的Dockerfile: # Database (http://www.cs3c.ma/) FROM postgres:9.4 MAINTAINER Sabbane <contact@cs3c.ma> ENV TERM=xterm RUN apt-get update RUN apt-get install -y nano ADD scripts /scripts # ADD scripts/setup-my-schema.sh /docker-entrypoint-initdb.d/ # Allow connections …
101 postgresql  docker 

7
禁用特定RUN命令的缓存
每次构建Docker映像时RUN,我都希望在Dockerfile中运行一些命令-no-cache。 我了解docker build --no-cache将禁用整个Dockerfile的缓存。 是否可以为特定的RUN命令禁用缓存?
101 docker 

8
Docker Compose保持容器运行
我想使用docker-compose启动服务并保持容器运行,以便我可以通过“ docker inspect”获取其IP地址。但是,容器始终在启动后立即退出。 我试图将“ command:[“ sleep”,“ 60”]“和其他内容添加到docker-compose.yml,但是每当我添加带有“ command:...”的行时,我都无法调用“ docker-compose up”因为我将收到消息“无法启动容器.....系统错误:无效的字符'k'寻找值的开始” 我还尝试向Dockerfile本身添加“ CMD sleep 60”和诸如此类的东西,但是这些命令似乎并未执行。 有没有一种简单的方法来保持容器的寿命或解决我的问题之一? 编辑:这是我要运行的撰写文件: version: '2' services: my-test: image: ubuntu command: bash -c "while true; do echo hello; sleep 2; done" 如果我在OS X下以docker-compose开头,则工作正常,但如果在Ubuntu 16.04下尝试相同操作,则会出现上述错误消息。 如果我尝试使用Dockerfile的方法,则Dockerfile如下所示: FROM ubuntu:latest CMD ["sleep", "60"] 哪个似乎什么都没做 编辑2:我必须纠正自己,原来这是Dockerfile和docker-compose.yml的相同问题:每次我向Dockerfile添加“ CMD ...”或向其中添加“ command ...”撰写文件时,出现无效字符并出现上述错误。如果我删除了这两个命令,它会完美地工作。

21
Docker错误绑定:地址已在使用中
当我docker-compose up在Docker项目中运行时,它失败并显示以下消息: Error starting userland proxy: listen tcp 0.0.0.0:3000: bind: address already in use netstat -pna | grep 3000 显示如下: tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN - 我已经尝试过了docker-compose down,但是没有帮助。

7
Docker Toolbox-Localhost无法正常工作
所以我使用Docker Toolbox是因为我的机器上没有Hyper-V,因为它不是Windows 10专业版。一切似乎都正常,但是当我尝试使用浏览器时,0.0.0.0:80它总是返回我:无法访问此站点 但是,当我运行命令时:docker container ps我得到以下信息:0.0.0.0:80->80/tcp这意味着该地址应该工作。我搜索了stackoverflow和github问题。现在我被卡住了。 我想念什么吗? 谢谢马克 编辑: 使用docker-machine ip default返回我192.168.99.100。我在端口80上运行。除了地址成为容器ID之外,我仍然得到相同的结果:https://fd677edg12 我运行CMD命令是找到我的IPv4的:cmd /k ipconfig /all。将结果与端口放在一起,它将返回相同的内容:https://fd677edg12

1
使用Docker Compose将文件复制到容器
我在Dockerfile哪里可以将现有目录(包含内容)复制到可以正常工作的容器中: Docker文件 FROM php:7.0-apache COPY Frontend/ /var/www/html/aw3somevideo/ COPY Frontend/ /var/www/html/ RUN ls -al /var/www/html RUN chown -R www-data:www-data /var/www/html RUN chmod -R 755 /var/www/html 但是当我使用docker-compose.yml文件时,只有目录,aw3somevideo而里面aw3somevideo没有任何东西。 docker-compose.yml: php: build: php/ volumes: - ./Frontend/ :/var/www/html/ - ./Frontend/index.php :/var/www/html/ ports: - 8100:80 也许我不了解它的功能,volumes如果是这种情况,请告诉我如何通过docker-compose.yml文件将现有文件复制到容器中。

3
无法链接到由docker-compose启动的正在运行的容器
我正在使用Docker容器设置本地开发环境。docker-compose.yml如下所示 version: '2' services: db: image: mongo:3 mq: image: rabbitmq:3 api: build: . image: my_app/api ports: - "3000:3000" links: - db - mq environment: - NODE_ENV=development 它开始没有错误。码头工人列出了3个正在运行的容器 docker-compose up -d docker ps e90e5a8b5d33 my_app/api "/usr/local/bin/node " 0.0.0.0:3000->3000/tcp my_app_api_1 42bfcd971b16 mongo:3 "/entrypoint.sh mongo" 27017/tcp my_app_db_1 a0685a816c47 rabbitmq:3 "/docker-entrypoint.s" 4369/tcp, 5671-5672/tcp, 25672/tcp …

23
未经授权的docker:需要身份验证-在成功登录后进行推送
从主机推送docker映像(成功登录后)时,我得到“未授权:需要身份验证”。 详细信息如下。 -bash-4.2# docker login --username=asamba --email=anand.sambamoorthy@gmail.com WARNING: login credentials saved in /root/.docker/config.json *Login Succeeded* -bash-4.2# -bash-4.2# docker push asamba/docker-whale Do you really want to push to public registry? [y/n]: y The push refers to a repository [docker.io/asamba/docker-whale] (len: 0) faa2fa357a0e: Preparing unauthorized: authentication required Docker版本:1.9.1(客户端和服务器) http://hub.docker.com也创建了存储库(asamba / docker-whale)。 / …
99 docker 

1
Docker将端口仅开放给主机
码头工人能够仅将端口公开给主机,而不公开外部。 我需要放置一个运行mongo数据库的docker,我希望只能从主机访问它,但是我需要链接主机端口27017。 这是可能的,还是唯一可能的方法是更改​​防火墙的定义?
99 docker 

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.