Tag: docker docker

在Dockerfile中创build一个新用户,并且无法安装npm deps

这是我的Dockerfile : FROM node:7.10.0 RUN useradd –user-group –create-home –shell /bin/false app RUN mkdir -p /usr/src/hello ENV HOME=/usr/src/ COPY package.json $HOME/hello/ RUN chown -R app:app $HOME/* RUN npm install -g pm2 USER app WORKDIR $HOME/hello RUN npm install EXPOSE 8080 CMD ["npm", "start"] 它用于从docker-compose构build我的应用程序 version: '2' services: hello: build: ./hello command: "pm2-docker server.js" ports: – 8080:8080 […]

Docker ENTRYPOINT在卷装载后运行

我的Dockerfile有一个脚本在入口点上运行。 容器计划在我的代码所在的卷装上运行,一旦容器装上卷,它就需要运行几个命令。 但是,从运行容器时得到的错误,我相信Docker卷挂载发生在ENTRYPOINT脚本之后。 一旦容器启动,我确定可以使用docker exec选项运行命令。 但是这使得更多的运行命令行。 是否有任何解决方法,甚至通过使用docker撰写? Dockerfile: FROM my-container WORKDIR /my-mount-dir ADD startup-script.sh /root/startup-script.sh ENTRYPOINT ["/root/startup-script.sh"] docker运行: docker run -itd -v / home / user / directory:/ my-mount-dir build-container 注意: startup-script.sh包含应该在挂载的目录文件上运行的命令。

错误:在文件“./docker-compose.yml”中,卷必须是映射,而不是数组

我得到这个错误(错误:在文件'./docker-compose.yml',卷必须是一个映射,而不是一个数组),当我运行“docker – 组成”命令。 我的docker-compose.yml文件看起来像这样。 version: '2' web: build: . ports: – "5000:5000" volumes: – .:/code ngnix: image: "ngnix:alpine" 和我的docker文件看起来像这样 FROM alpine:3.5 MAINTAINER NGINX Docker Maintainers "docker-maint@nginx.com" ENV NGINX_VERSION 1.13.3 RUN GPG_KEYS=B0F4253373F8F6F510D42178520A9993A1C052F8 \ && CONFIG="\ –prefix=/etc/nginx \ –sbin-path=/usr/sbin/nginx \ –modules-path=/usr/lib/nginx/modules \ –conf-path=/etc/nginx/nginx.conf \ –error-log-path=/var/log/nginx/error.log \ –http-log-path=/var/log/nginx/access.log \ –pid-path=/var/run/nginx.pid \ –lock-path=/var/run/nginx.lock \ –http-client-body-temp-path=/var/cache/nginx/client_temp \ –http-proxy-temp-path=/var/cache/nginx/proxy_temp \ –http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp […]

docker-compose中的Python与具有相同图像的独立容器之间的差异

在我的项目中,我有一个基于ubuntu的dockerized微服务:我想从标准apt-get 2.7.6版本更新到python 2.7.13。 这样做,我遇到了一些模块导入问题。 从那时起,我已经添加到我的pythonpath python2.7/dist-packages的开头,它包含了我所关心的所有模块。 我使用docker-compose build我的微服务映像,但问题是:当我运行docker-compose up ,这个微服务无法导入所有非标准模块,但是当我使用docker run -it image_id /bin/bash创build自己的容器时, docker run -it image_id /bin/bash然后运行一个python shell并导入任何上述模块,一切正常。 甚至当我运行相同的python脚本时,它也会通过所有这些导入语句(但由于没有正确的链接而被隔离运行,所以导致其他问题失败)。 我已经断言python 2.7.13正在docker上运行docker-compose up ,当我运行我自己的容器。 我已经清除了所有的容器,图像和caching,并重build了没有进展。 docker文件末尾运行的命令是CMD python /filename/file.py 。 任何想法可能会导致这种差异? 编辑:根据要求,这里的Dockerfile。 文件结构只是一个包含子文件夹的项目文件夹,每个文件夹都是自己的dockerized微服务。 这里关心的是document_analyzer,下面是docker-compose文件的相关部分。 没有正确安装的文件的例子是PyPDF2,pymongo,boto3。 FROM ubuntu:trusty # Built using PyImageSearch guide: # http://www.pyimagesearch.com/2015/06/22/install-opencv-3-0-and-python-2-7-on-ubuntu/ # Install dependencies RUN \ apt-get -qq update && apt-get -qq […]

如何快速将maven项目整合到docker中

我有一个maven项目,其项目结构如下: parentProject: parentProject: APorject.war BProject.war parentApiProject: AProjectApi.jar BProjectApi.jar 我想同时打包这个项目,下面的四个项目被复制到四个docker中,并且会跑起来。 有什么好的想法和技术解决scheme吗?

Dockerizing Node.js应用程序

当试图dockerize节点的应用程序,当我访问本地主机:8000我得到这个错误: 连接被重置 – 连接到服务器被重置,而页面加载。 在terminal上,当我在图像上使用运行命令时,我在控制台中得到所需的输出。 它说: 运行在http:// localhost:8000 / Dockerfile: FROM node RUN mkdir -p /app/ WORKDIR /app COPY package.json /app RUN cd /app RUN npm install COPY . /app CMD ["node", "index.js"] EXPOSE 8000 index.js: #!/usr/bin/env nodejs var http = require('http'); http.createServer(function(req, res) { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello World\n'); }).listen(8000, 'localhost'); console.log('Server […]

Docker无法在Rails bundle上安装rake

我使用Docker for Windows来运行Rails(v5)应用程序的Image。 当我做docker构build我得到这个错误。 我不知道在哪里寻找debugging和/或解决这个问题。 这里是我的DockerFile:从ruby:2.3.3-slim RUN apt-get update && apt-get install -y build-essential RUN apt-get install -y libmysqlclient-dev RUN apt-get install -y mysql-client RUN apt-get install -y libmagickwand-dev imagemagick RUN apt-get install -y curl RUN curl -sL https://deb.nodesource.com/setup_6.x | bash – RUN apt-get install -y nodejs RUN apt-get install -y git #RUN npm install […]

ER_HOST_NOT_PRIVILEGED – docker容器无法连接到mariadb

我试图让docker容器与mariadb和node.js图像一起工作。 容器将使用/home/mysql的现有数据库。 但是,当容器启动,我得到这个“失败连接”错误在node.js: Error: ER_HOST_NOT_PRIVILEGED: Host '172.18.0.5' is not allowed to connect to this MariaDB server 这是我的docker-compose.yml: version: '3' services: mariadb: image: mariadb restart: always volumes: – /home/mysql:/var/lib/mysql user: "mysql" ports: – "3306:3306" watch: build: . restart: always links: – mariadb:mysql environment: – DOCKER_IP=172.18.0.2 depends_on: ['mariadb'] ports: – "3000:3000" 读完这个线程之后 ,我发现mysql实际上正在运行,但是不能让其他服务连接: 这些是我查过的一些步骤。 正如你所看到的,我可以login到MySQL实例: $ docker […]

具有发布的端口的Docker容器不能从外部访问

我的Docker容器在端口3000上运行Rails,并将端口发布到端口8900 。 看到: $ docker-compose ps Name Command State Ports rails_poc_1 /bin/sh -c puma -C config/ … Up 0.0.0.0:3000->8900/tcp 但是,当访问http://localhost:8900我的浏览器显示ERR_CONNECTION_REFUSED 。 当从容器内使用docker exec 8fcceed1d477 curl localhost:3000 curl端口3000 ,我得到一个有效的响应,certificateRails工作正常。 我可以俯视吗?

EC2容器registry入门

这让我很头疼 这是我迄今为止所做的 创build了一个EC2虚拟服务器实例,并运行 安装了AWS CLI 安装了我的EC2虚拟服务器后,我SSH进入它的Docker 所以看看文档,它会告诉你如何构build一个图像。 现在是我的困惑。 问题1 :我正确地假设一个人可以select: a)从主机上创build一个镜像,或者b)从Docker Hub中拖出一个由他人创build的镜像。 问题2 :如果我对第一个问题是正确的,那么如果我不是从docker中心拉出一个图像,那么我要怎么build立一个图像? 与AWS文档在这里? 问题3 :然后我看到了一个完全不同的路线,使用Docker Compose,所以我会使用它来代替上述所有内容? 这太混乱了。 EC2容器registry – 现在一般可用 再说一遍, 在这里 ,它告诉你在主机上安装docker。 然后立即跳入“创build图像”。 创build一个形象,什么,该主机的操作系统? 我不明白,我想这就是这个意思,或者我可以从Docker Hub中获取一张图片,而不是走这条路线? 同样在这里 ,它是在谈论创造一个docker形象, 什么主机? Or..maybe我不明白什么“形象”的意思,但我假设走这条路线,而不是从Docker Hub拉我从EC2虚拟实例创build一个图像的Docker图像?