一个non-linux平台使用docker的问题

相关问题 最近换了工作,新公司准备开发一个社区项目,从零开始开发.新电脑的环境使用自己为方便开发写的基于docker-compose的环境,框架使用laravel5.5,php版本7.2,mysql版本5.7,其他使用nginx作为web服务器,redis处理缓存 刚开始就发现一个奇怪的问题:请求后台的每个页面响应时间都在1s以上(localhost),后来发现直接请求首页也是这样的高延迟,由于全局都没有类似google的静态文件引入,因此想到去网上找原因,在Extremely slow on Windows 10中,提问者提到已经尝试过多种能想到的办法去优化设置,升级,以及修改docker的各项配置,但最终依然无法解决该问题 我也尝试过在Mac和Ubuntu Server上使用docker,docker在Mac和Windows上的问题相似,加载速度也很慢,但在Linux上响应非常迅速,个人能想到的原因可能是在非Linux系统下的docker都是运行在虚拟机内,可能因为目录映射跨越宿主机和虚拟机导致了读写速度缓慢.. 另一个参考 不同平台上的docker性能讨论 个人结论 使用non linux平台的docker作为开发和测试环境都是可行且方便的,但一定不要作为生产环境!!!

December 5, 2018 · 1 min · 14 words

关于docker内nginx获取真实client-ip的问题

环境 系统:MacOS Mojave web环境:docker+nginx+php-fpm 问题 nginx始终无法获取到正确的客户端ip地址,获取到的是nginx所在docker容器的网关ip 原因 后来发现是MacOS下才有的问题,在linux下正常 方法 在nginx配置文件的server段加入以下 proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; 现存问题 当前配置可在linux下获取到正确的客户端ip,但macOS系统获取到的依然是gateway地址,目前多次google后仍然无果,以下为部分该问题相关的参考地址 Original ip is not passed to containers Docker Beta on Mac : Cannot use ip to access nginx container docker 如何让 Nginx 获取到访问者 IP? 后续需要继续关注该问题的解决方案

November 9, 2018 · 1 min · 49 words

docker安装php7.2记录

问题 准备通过Dockerfile构建php镜像,在使用docker-php-ext-install安装mcrypt扩展时遇到如下错误: error: /usr/src/php/ext/mcrypt does not exist 原因 mycrypt extension is not provided with the PHP source since 7.2 , but are instead available through PECL. To install a PECL extension in docker, use pecl install to download and compile it, then use docker-php-ext-enable to enable it: php从7.2开始不再在源码里支持mcrypt扩展而转到pecl方式支持 pecl install mcrypt-1.0.1 docker-php-ext-enable mcrypt 解决 版本切换到7.1再执行构建时问题没有复现,同时按照 pecl install mcrypt-1.0.1 docker-php-ext-enable mcrypt 的方式安装之后也没有出现上述问题 问题 安装过程中提示(虽然不会影响最终结果) WARNING: Ignoring APKINDEX.e3d33561.tar.gz: No such file or directory 解决 doing apk update fixes the problem (updates the index). ...

September 21, 2018 · 2 min · 310 words

docker搭建gitlab和svn服务

之前公司里的代码都是托管到局域网服务器上的,现在由于部分同事远程办公的需要,计划把git和svn都转到公网的centos服务器上去,但是gitlab的配置是真心费时间,所以决定用docker来做这个事情,以下是一些步骤和总结 使用daocloud给docker加个速先… 可以通过这个链接里面的命令给docker改个源,不然速度慢死… gitlab安装 拉取镜像 docker pull gitlab/gitlab-ce:latest 新建授权用户 useradd -d /home/gitlab -s /bin/sh -m gitlab 后台运行容器,指定域名,端口映射关系,目录映射关系,将容器命名为gitlab,方便后续操作 docker run --detach \ --hostname git.vcs.trycheers.com \ --publish 10443:443 --publish 10080:80 --publish 10022:22 \ --name gitlab \ --restart always \ --volume /home/gitlab/config:/etc/gitlab \ --volume /home/gitlab/logs:/var/log/gitlab \ --volume /home/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest 用apache对10080端口进行反代,使之能够通过域名访问 <VirtualHost *:80> ServerName hostname ProxyPreserveHost On ProxyPass / http://localhost:10080/ ProxyPassReverse / http://localhost:10080/ </VirtualHost> svn安装 后台运行容器,指定端口映射关系,目录映射关系,将容器命名为svn,方便后续操作 docker run -d -p 9200:80 -p 9201:443 -v /home/subversion/svn:/var/local/svn -v /home/subversion/svn_backup:/var/svn-backup -v /home/subversion/svn_conf/:/etc/apache2/dav_svn/ --name svn marvambass/subversion 添加svn用户 htdigest /home/subversion/svn_conf/dav_svn.passwd Subversion username 修改仓库/分组/用户权限 直接编辑/home/subversion/svn_conf/dav_svn.authz ...

May 21, 2018 · 1 min · 106 words