Articles of docker

nginx 403禁止的错误

我正在尝试在基于这个项目的Docker中使用grafana来设置石墨: https : //github.com/kamon-io/docker-grafana-graphite 当我运行我的dockerfile时,我得到了对于nginx的403 Forbidden错误。 我的nginxconfiguration与项目configuration几乎一样。 我运行我的dockerfiles在服务器上,并在我的Windows机器上testing它们。 所以configuration不完全一样…例如我有: server { listen 80 default_server; server_name _; location / { root /src/grafana/dist; index index.html; } location /graphite/ { proxy_pass http:/myserver:8000/; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-Host $host; proxy_set_header Host $host; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; […]

Docker容器遇到socket问题(单独的Flask + Nginx容器)

在运行docker-compose build && docker-compose并尝试打开我的索引页后,我遇到了以下多错误: [crit] 8#8: *1 connect() to unix:/tmp/uwsgi.sock failed (2: No such file or directory) while connecting to upstream, client: 192.168.99.1, server: localhost, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/tmp/uwsgi.sock:", host: "192.168.99.100" 这是我的docker-compose.yml: web: restart: always build: ./web-app expose: – "8000" command: /usr/local/bin/uwsgi –ini sample-uwsgi.ini nginx: restart: always build: ./nginx/ ports: – "80:80" links: […]

无法访问本地Windows机器上的nginx容器

我在Windows 10机器上运行一个nginx容器。 我把它剥离到了最低限度 – Docker中心提供的一个nginx镜像。 我运行它使用: docker run –name ng -d -P nginx 这是docker ps的输出: b5411ff47ca6 nginx "nginx -g 'daemon off" 22 seconds ago Up 21 seconds 0.0.0.0:32771->80/tcp, 0.0.0.0:32770->443/tcp ng 这是我在做docker inspect ng时得到的IP:“IPAddress”:“172.17.0.2” 所以,我想要做的下一件事是通过在主机的浏览器中打开http://172.17.0.2:32771从主机访问Nginx服务器。 这是行不通的(主机没有find等)。 请指教

dockerlogin返回一个404的artifactory

我在artfactory中有以下的docker仓库的nginxconfiguration server { listen 2222 ssl; server_name rproxy.company.com; if ($http_x_forwarded_proto = '') { set $http_x_forwarded_proto $scheme; } rewrite ^/(v1|v2)/(.*) /artifactory/api/docker/docker-dev/$1/$2; client_max_body_size 0; chunked_transfer_encoding on; location / { allow all; proxy_read_timeout 900; proxy_pass_header Server; proxy_cookie_path ~*^/.* /; proxy_set_header X-Artifactory-Override-Base-Url $http_x_forwarded_proto://$host:$server_port; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://artifactory_lb; } 但dockerloginrproxy.compan.com:2222返回一个404 […]

托pipe一个PHP网站的Docker体系结构

我一直在研究Docker,以及如何在服务器上托pipe多个网站“Docker的方式”。 据我所知,理想情况下,一切都应该运行自己的容器,这些容器不应该共享。 我的问题是,下面的概述是否是一个有效的容器设置,请求进入一个反向代理,将请求转发给底层的Web服务器来处理实际的请求。 另外,在以下三种情况下,我详细介绍了包含应用程序源文件的不同方法,并且想知道哪三个是最常用/最好使用的。 我希望能够在Docker中的单个服务器上运行不同的网站。 网站可以有不同的要求,如图中不同的PHP-FPM版本所示。 网站的部署本身有点不清楚,因为我不确定是否应该将源文件与nginx / PHP-FPM一起包含或单独部署。 我目前的设置如下: 泊坞窗,compose.yml version: '2' services: nginx: image: nginx:alpine restart: always ports: – '80:80' links: – example_com – example_org – example_net volumes: – ./nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf:ro example_com: image: php:7.0-fpm-alpine restart: always volumes: – ./sites/example_com:/var/www/example_com:ro example_org: image: php:7.0-fpm-alpine restart: always volumes: – ./sites/example_org:/var/www/example_org:ro example_net: image: php:7.0-fpm-alpine restart: always volumes: – […]

将SSL证书添加到mysql泊坞窗容器

我正在为django应用程序构build一个docker容器,该应用程序使用nginx和uwsgi。 对于数据库,应用程序使用mysql,它位于不同的容器中,并且两者都与docker-compose.yml文件链接: version: '2' services: mysql: image: mysql:latest environment: -MYSQL_DATABASE: TheDatabase -MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' -MYSQL_USER: TheUsername -MYSQL_PASSWORD: ThePassword ports: -"3306:3306" django: build: . volumes: – .:/app ports: – "443:443" – "8000:8000" links: – mysql 我正在使用SSL证书,这些证书是使用OpenSSL进行自签名的,并且包含在nginx.conf文件中。 问题是每次我运行容器并尝试以超级用户身份login时,出现以下错误504 Timed Out 。 经过相当多的思考后,我得出结论,这个问题是在连接到MySQL数据库。 我没有进入mysql容器,看到数据库在那里,检查表后,我看到所有的表已经创build。 但是,在阅读日志后,我注意到以下行: [Warning]由于以下SSL库错误而无法设置SSL:没有证书和私钥,SSL上下文不可用 。 当我使用Docker集线器的一个准备好的图像时,我应该如何添加SSL密钥和证书? 那是为什么我得到504超时错误 ? 我也收到以下3个警告: [警告]在–skip-name-resolve模式下忽略'db'项'sys mysql.sys@localhost'。 [Warning]'proxies_priv'entry'@ root @ localhost'在–skip-name-resolve模式下被忽略。 [警告]在–skip-name-resolve模式中忽略'tables_priv'条目'sys_config mysql.sys@localhost'

无法连接到websocket使用Django的渠道,在docker上的nginx作为服务

我正在使用docker撰写与django,nginx作为服务的项目。 当我启动达芙妮服务器,并且客户端尝试连接到websocket服务器时,出现此错误: *1 recv() failed (104: Connection reset by peer) while reading response header from upstream 客户端显示这一点 failed: Error during WebSocket handshake: Unexpected response code: 502 这是我的docker-compose.yml version: '3' services: nginx: image: nginx command: nginx -g 'daemon off;' ports: – "1010:80" volumes: – ./config/nginx/nginx.conf:/etc/nginx/nginx.conf – .:/makeup links: – web web: build: . command: /usr/local/bin/circusd /makeup/config/circus/web.ini […]

Docker-compose Nginx php-fpm文件未find

我有一个简单的docker-composeconfigurationphp-fpm和nginx,我看不到任何php文件。 当我去本地主机,它显示文件未find。 我尝试了一切,我可以在网上find,但我所尝试的一切都失败了。 它工作正常的HTML,但不是PHP文件。 似乎是一个path问题,或类似的东西。 我在docker-compose logs遇到这个错误: project3-php_1 | 172.17.0.5 – 29/Mar/2016:13:29:12 +0000 "GET /index.php" 404 project3-front_1 | 172.17.0.1 – – [29/Mar/2016:13:29:12 +0000] "GET / HTTP/1.1" 404 27 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36" project3-front_1 | 2016/03/29 13:29:12 [error] 8#8: *3 FastCGI sent in stderr: "Primary script unknown" while reading […]

简单的docker – 与两个服务组成:nginx和php

我开始与Docker和nginx ,我试图设置一个两个容器环境运行: nginx:latest一面 php:fpm在另一边的php:fpm 我遇到了php-fpm的麻烦:我总是得到一个502错误的网关错误。 我的设置很简单( $TEST_DIR是我的工作目录)。 我的Docker组合configurationTEST_DIR/docker-compose.yml : nginx: image: nginx ports: – "8080:80" volumes: – ./www:/usr/share/nginx/html – ./conf/nginx.conf:/nginx.conf – ./logs/nginx:/var/log/nginx links: – php:php command: nginx -c /nginx.conf php: image: php:fpm ports: – "9000:9000" volumes: – ./www:/var/www/html nginxconfiguration$TEST_DIR/conf/nginx.conf : user nginx; worker_processes 1; pid /var/run/nginx.pid; events { worker_connections 2048; multi_accept on; use epoll; } […]

将docker容器自动添加到nginx负载均衡器的上游configuration中

我正在运行Docker Compose(v2),并且有一个节点服务(网站)和基于python的api,并且在它们前面放置了nginx。 我想要做的一件事就是能够通过添加更多容器来扩展服务。 如果事先知道有多less个容器,我可以使用对docker提供的容器IP的引用来硬编码nginx上游configuration。 然而,问题是我希望上游nginxconfiguration是dynamic的,例如,如果我添加另一个Docker容器,它只是添加容器的位置到上游块的上游IP列表。 我的想法是创build一个脚本,当容器发生变化时,会自动附加使用envvariables的上游服务器,但是我不确定从哪里开始,找不到一个好例子。