Tag: 泊坞窗

超级慢查询时间为laravel 5 / php-fpm / nginx在dockerized的web应用程序

我有一个位于nginx之后的Laravel 5.5 / PHP-fpm(PHP 7)API,都在不同的Docker容器中。 我简单地返回一个json对象的API调用大约需要2秒钟,这对于这样一个简单的查询来说是非常长的(即使我查询并从dockerized mysql数据库中返回一些行,也需要3秒以上)。 应该less于一百毫秒。 我不知道如何debugging这个问题。 任何想法为什么这么慢? 使用Docker for Mac docker-compose版本1.16.1,build 6d1ac21 Docker版本17.09.0-ce,编译afdb6d4 PHP API Route::get('/api/names', function () { return array( 1 => "Honey", 2 => "Nut", 3 => "Cheerios" ); }); Nginx的dockerfile FROM nginx RUN rm /etc/nginx/conf.d/* COPY nginx.conf /etc/nginx/conf.d/ nginx.conf upstream phpie { server php-fpm:9000 weight=10 max_fails=3 fail_timeout=30s; } server […]

如何在与docker-compose链接到另一个容器的容器中运行linux守护进程?

我有以下docker-compose.yml文件,它运行带有PHP支持的nginx: version: '3' services: nginx: container_name: my-app-nginx image: nginx:1.13.6 ports: – 8080:80 volumes: – ./nginx-default.conf:/etc/nginx/conf.d/default.conf – ./my-app:/var/www/my-app restart: always depends_on: – php php: container_name: my-app-php image: php:7.1-fpm volumes: – ./my-app:/var/www/my-app restart: always /var/www/my-app的PHP应用/var/www/my-app需要与一个linux守护进程进行通信(我们称之为myappd )。 我看到的方式,我需要: 把myappd复制到/usr/local/bin的nginx容器中,用chmod +x使其可执行,并在后台运行。 创build一个不同的容器,将myappd复制到/usr/local/bin ,使用chmod +x使其可执行,并在前台运行它。 现在,我是Docker的新手,我正在研究和了解它,但是鉴于我在使用Docker Composer,我的最佳猜测是选项2可能是推荐的选项? 鉴于我对Docker的知识有限,我不得不猜测这个容器需要某种基于Linux的映像(比如Ubuntu或者其他)来运行这个二进制文件。 所以也许选项1是首选? 或者,也许选项2是可能的一个最小的Ubuntu图像,也许没有这样的形象是可能的? 无论哪种方式,我不知道如何在composer文件上实现它。 特别是选项2,PHP应用程序将如何与守护程序在不同的容器中进行通信? 就像我为nginx / php服务所做的那样,“共享”一个卷(二进制文件所在的位置)就足够了吗? 还是其他什么是必需的?

使用Confluent.Kafka从.net核心服务写入Kafka

我有一个.net核心服务,从MEMSQL服务器获取数据并返回给客户端。 但是,在服务中生成的查询需要logging到Kafka集群。 我试着安装Confluent.Kafka软件包并进行日志logging,在本地运行时工作正常。 但在容器中,该服务无法logging并生成以下错误: warning NU1701: Package 'librdkafka.redist 0.9.5' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.0'. This package may not be fully compatible with your project. The type initializer for 'Confluent.Kafka.Impl.LibRdKafka' threw an exception. 容器在LINUX机器上运行。 基本上,我需要找出与.netcore 2.0兼容的Confluent.Kafka版本,而不依赖.NETFramework v4.6的版本。

Docker中的PostgreSQL – pg_hba.conf允许从主机访问容器

我想在Docker容器中运行PostgreSQL。 我正在构build自己的Docker镜像,因为我想包含PostgreSQL扩展。 我应该编辑pg_hba.confconfiguration文件来: 允许来自其他容器的访问 允许来自主机的访问 第一个很简单:如果我没有弄错,我可以为172.17.0.0/16添加一条规则。 但是我怎样才能接近第二呢? 主机连接到容器中的psql时,IP(或范围)是什么样的? 备注:我通过docker run -p 127.0.0.1:5432:5432启动容器,所以理论上我可以只允许all在pg_hba.conf因为端口转发只绑定到127.0.0.1 。 但是我更喜欢pg_hba.conf这个额外的安全级别,当我(可能是错误的)通过docker run -p 5432:5432运行容器。 我希望这是有道理的。 更新 实际上,设置范围172.17.0.0/16似乎不正确。 例如,我的容器在我的testing中有IP 172.18.0.2 。 根据我迄今为止的调查,似乎没有就默认范围或如何configuration这个范围达成共识。

使用VirtualBox 5.1.8 r11374无法在Windows 10上启动docker

只是不能在Windows 10上启动Docker。 VT-x已开启,我重新安装了Docker,Virtualbox,在Virtualbox上重新configuration了NATnetworking设备,重新configuration了整个Virtualbox设置,我重新安装了所谓的VBoxDrv.inf ,几乎重新启动1000倍以上,但我无法解决这个问题。 我不知道发生了什么事。 这是我的VBoxHardening.log 1730.2140: Log file opened: 5.1.8r111374 g_hStartupLog=000000000000013c g_uNtVerCombined=0xa03fab00 1730.2140: \SystemRoot\System32\ntdll.dll: 1730.2140: CreationTime: 2017-11-15T00:34:22.140964500Z 1730.2140: LastWriteTime: 2017-10-25T04:37:21.227931100Z 1730.2140: ChangeTime: 2017-11-15T05:18:19.608963500Z 1730.2140: FileAttributes: 0x20 1730.2140: Size: 0x1dd100 1730.2140: NT Headers: 0xe0 1730.2140: Timestamp: 0x493793ea 1730.2140: Machine: 0x8664 – amd64 1730.2140: Timestamp: 0x493793ea 1730.2140: Image Version: 10.0 1730.2140: SizeOfImage: 0x1e0000 (1966080) 1730.2140: Resource […]

使用docker-dind时,如何给非root用户访问docker?

我正在尝试使用docker-dind运行Go CD代理来自动构build一些泊坞窗图像。 我无法让用户go访问docker守护进程。 当我尝试和访问docker信息时,我得到以下内容: [go] Task: /bin/sh ./builder.shtook: 2.820s [START] [USER] go [TAG] manual Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.32/containers/fish/angular-cli/json: dial unix /var/run/docker.sock: connect: permission denied Sending build context to Docker daemon 3.072kB Step 1/8 : FROM node:8-alpine —> 4db2697ce114 Step 2/8 : MAINTAINER jack@fish.com […]

Docker中的PostgreSQL – 从主机访问

我一直在尝试访问Docker容器中运行的PostgreSQL。 我可以从localhost:8080上的admhost连接到PostgreSQL,这是另一个容器,但是我不能从我的主机连接,尽pipe我将端口5432映射到主机。 作为一个容器的IP连接,我一直在使用从“ docker inspect <postgre_container> ”获取的IP地址 – 通常是172.21.0.2/3 。 这就是我的docker-compose.yml的样子: version: '3.1' services: db: image: postgres:9.6.0 restart: always environment: POSTGRES_PASSWORD: root POSTGRES_USER: root ports: – "5432:5432" volumes: – pgdata:/var/lib/postgresql/data adminer: image: adminer restart: always ports: – 8080:8080 volumes: pgdata: 我会很高兴任何提示,谢谢

用docker设置redis

我已经根据以下说明设置了一个基本的redis映像: http : //docs.docker.io/en/latest/examples/running_redis_service/ 通过我的快照,我还使用requirepass编辑了redis.conf文件。 我的服务器运行正常,我可以使用redis-cli远程访问它,但是身份validation不起作用。 我想知道如果configuration文件没有被使用,但是当我尝试启动容器: docker run -d -p 6379:6379 jwarzech / redis / usr / bin / redis-server /etc/redis/redis.conf 容器立即崩溃。

限制Docker容器的文件访问

假设我在Docker容器中有NodeJS应用程序。 NodeJS可以使用fs模块与主机的文件系统进行交互。 我想要的只是给它访问一个文件夹(例如, / home / user1 / thisfolder ),并拒绝读/写我的主机上的任何其他文件夹或文件。 在Docker中有没有限制这种访问的方法? UPD GOT答案:使用AppArmor我可以给node进程只能访问给定的目录,当它试图访问任何其他 – 它获得permission denied 。

Couchbase PHP SDK在Docker容器中

我有一个运行PHP-FPM 5.5的Docker容器,我想确保它可以访问Couchbase SDK。 我在Docker之外工作,并不能真正了解Docker如何干预,但我似乎遇到了“可能”与docker相关的问题: 我的Docker容器在Ubuntu 14.04下运行,包括以下安装(安装PHP之后): # Install Couchbase C-library and PECL extension RUN wget -O/etc/apt/sources.list.d/couchbase.list http://packages.couchbase.com/ubuntu/couchbase-ubuntu1404.list \ && wget -O- http://packages.couchbase.com/ubuntu/couchbase.key | sudo apt-key add – \ && apt-get update \ && apt-get install -y –no-install-recommends pkg-config libcouchbase2-libevent libcouchbase-dev libmemcached-dev php-pear php5-dev make \ && pecl config-set php_ini /app/conf/php.ini \ && pecl install couchbase […]