Articles of Docker

kafka docker – 发送邮件时发生错误

我想在Docker容器中实现kafka。 我也使用kafka的官方zookeper实例作为docker容器。 当我想写关于terminal的消息,在我的linux mint 18.1 OS上,我得到以下错误信息。 foo@bar ~ $ /opt/kafka/bin/kafka-console-producer.sh –broker-list localhost:32786 –topic topic Hello [2017-05-16 11:01:08,245] ERROR Error when sending message to topic topic with key: null, value: 5 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for topic-0: 1532 ms has passed since batch creation plus linger time 我不知道为什么。 这是我的docker文件。 卡夫卡configuration # Licensed […]

NGINX允许encryption“已接收2个证书”

我目前正在运行几个docker集装箱。 一个用于nginx,一个用于我的节点js应用程序,最后一个用于创build和更新从authentication的encryption。 这工作相当好一段时间,但我遇到了一个问题。 在这个服务器上,我有5个域都安装了ssl。 但是现在我不能安装更多的证书。 我得到这个: – The following errors were reported by the server: Domain: domain1.com Type: unauthorized Detail: Incorrect validation certificate for tls-sni-01 challenge. Requested c7a966714b5363c594f152b27f947722.f767e462430a051872cd4eaab3969248.acme.invalid from MY_IP:443. Received 2 certificate(s), first certificate had names "domain0.com" 环顾四周后,我看到,如果我去“ https://domain1.com/ ”我得到一个错误信息,读取: Safari无法validation网站“domain1.com”的身份。 当我点击“显示证书”,它显示我domain0.com的证书 这是domain0.com的configuration server { listen 80; server_name domain0.com; location /.well-known/acme-challenge { proxy_pass http://certbot:80; […]

cron和crontab在Ubuntu 16.04的docker映像中丢失了

这是我的Dockerfile FROM ubuntu:16.04 RUN apt-get update -y && apt-get install -y \ git \ python \ python-pip 在创buildDocker镜像后,我login并尝试设置一个cron作业进行testing。 令我惊讶的是, cron和crontab不存在。 # ls app bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var # crontab -l /bin/sh: 6: crontab: not found # crontab -l /bin/sh: 7: […]

将Docker镜像通过安装程序部署到桌面用户

我有一个Web应用程序及其依赖项(Java等)的Docker镜像。 我想将其打包到Windows / Mac安装程序中,以允许最终用户运行容器。 我不希望他们先下载Docker,然后去命令行下载并运行一个镜像,因为他们不是技术用户。 有没有办法做到这一点?

在docker集装箱中创build卷或装载有什么区别?

Docker提供了两种方法来备份和同步本地机器上的容器数据,例如卷和安装。 但是,除了我注意到的几件事外,两者的行为都是一样的: volume始终将数据保存在/ var / lib / docker / volumes中,而无论我们希望如何,都可以创build安装点 如果分配有装入点的容器被分配了卷,则来自装入点的所有数据都会自动复制到卷,而反向则不会 我们不能在Dockerfile中描述装载点,但可以在Dockerfile中提供卷 好的,所以我们可以说方法论有一些优缺点,但是在优化方面还是有一些分类或者区别的。 请提供解释的答案。

用Docker Swarm for SSLconfigurationAzure容器服务

我有一个运行Docker Swarm的Azure容器服务实例,其中包含使用NodeJS编写的单个Web应用程序的实例。 我现在要确保所有stream量通过HTTPS进入网站。 我无法find有关如何为Azure容器服务设置证书和域名的文档。 假设这里的最佳做法是在Web应用程序容器前面放置一个NGINX容器,并在那里configuration证书和域名,我是否正确? Azure容器服务在群集前有一个azure色的负载平衡器,但没有任何build议如何为其configurationSSL证书。 什么是最好的方法是不明显的,所以任何帮助将不胜感激。

如何在docker集装箱中的OMS中读取自定义日志?

有没有一种方法可以在Docker容器中获取定制日志,供Azure / Microsoft的OMS使用? 将linux代理安装到每个容器中看起来像是矫枉过正,也是针对他们的容器解决scheme。

从另一个容器访问环境variables

我如何从另一个容器访问MONGODBurl 我的容器是.. 数据库(Mongo图像) Api(私有容器与节点api) UI(使用nginx的私有容器) 在API应用程序中,我需要使用API_MONGO_URL环境variables来引用MongoDB url。 如何在创buildmongodb容器后更新这个variables? version: "3" volumes: mongo_data: driver: local services: mongodb: image: mongo:latest container_name: db command: –smallfiles –rest volumes: – mongo_data:/data/db ports: – "27017:27017" environment: – MONGODB_PORT_27017_TCP_ADDR=$MONGODB_PORT_27017_TCP_ADDR – MONGODB_PORT_27017_TCP_PORT=${MONGODB_PORT_27017_TCP_PORT} api: image: api:latest container_name: api depends_on: – mongodb environment: – API_MONGO_URL= "mongodb://${MONGODB_PORT_27017_TCP_ADDR}:${MONGODB_PORT_27017_TCP_PORT}/api" links: – mongodb expose: – "3000" web: image: ui:latest […]

适当的docker集装箱更新:拉或apt-get升级?

我想了解什么是最好的方法来保持运行容器更新在docker。 我一直在参加这个讨论: https://stackoverflow.com/questions/26423515/how-to-automatically-update-your-docker-containers-if-base-images-are-updated/44677829#44677829 编写脚本可以帮助我查看在hub.docker.com上发布新基础映像的时间,或者在此处有可用于容器的安全更新: https://stackoverflow.com/a/44677829/925452 问题是,什么是“正确的”更新方式? IE应该是“apt-get升级”: docker exec MYCONTAINER bash -c 'grep security /etc/apt/sources.list > /tmp/security.list; apt-get update > /dev/null; apt-get upgrade -oDir::Etc::Sourcelist=/tmp/security.list' 然后做一个新的基础图像出来时, docker pull ? docker pull如何影响更新的软件包? 也许我应该做docker pull ,然后按照apt-get upgrade ?

在docker容器中使用带反向代理的nginx不起作用

我希望以/api开始的所有内容都被定向到http://localhost:3007 这是我的nginx.conf user nginx; worker_processes 1; daemon off; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root /usr/html; index index.html index.htm; } location /api { proxy_pass http://localhost:3007; proxy_read_timeout 5m; } error_page 500 502 503 504 /50x.html; location = /50x.html […]