Articles of 窗撰写

Docker安装nginx

在Nginxconfiguration文件中访问容器名称

在Docker中,我使用docker network create usta_network了一个新的networkingdocker network create usta_network命令,并在docker-compose.yml文件的服务声明中引用此networking。 没关系,我现在可以用容器的名字来ping服务,但是我怎么能在Nginx的上游声明中引用一个容器的名字呢? 在集装箱之间进行访问是最好还是最好的做法? docker.compose for nginx version: '2' services: nginx-main: image: nginx:latest ports: – "80:80" volumes: – ./nginx.conf:/etc/nginx/nginx.conf:ro – /var/log/nginx:/var/log/nginx container_name: nginx_main networks: default: external: name: usta_network ./nginx.conf 用户nginx; http { server { listen 80; index index.php index.html index.htm; server_name example.org www.example.org; location / { proxy_set_header Host $host; proxy_set_header […]

docker工人组成:重build一个链接的容器打破了nginx的上游

我正在使用Docker docker-compose和“Docker for Mac”,我有两个容器:一个NGINX,一个容器在端口3000上提供节点应用程序。 docker-compose.yml看起来像这样: version: "2" services: nginx: build: ./nginx ports: – "80:80" links: – api api: build: ./api volumes: – "./api:/opt/app" 在NGINX的configuration中我说: upstream api { server api:3000; } server { # …. location ~ ^/api/?(.*) { 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_pass http://api; proxy_redirect off; } } 现在,当我改变节点代码中的东西,并重build容器 $ […]

Docker + nginx + PHP – nginx是不是指向根目录?

我按照这个指南在Docker上运行PHP,但是nginx并没有指向我在site.conf中设置的根目录。 泊坞窗,compose.yml: nginx: image: nginx:latest ports: – 8080:80 volumes: – ./code:/code – ./site.conf:/etc/nginx/conf.d/site.conf links: – php php: image: php:7-fpm volumes: – ./code:/code site.conf: server { index index.php index.html; server_name localhost; error_log /var/log/nginx/error.log; access_log /var/log/nginx/access.log; root /code; location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass php:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param […]

在一台主机上运行两个docker组合应用程序的最好方法是在nginx后面运行?

我有两个docker-compose应用程序: a.com b.com 我想在同一台主机上运行它们,并放置一个nginx容器代理,将传入的请求路由到每个docker-compose应用程序中的正确服务。 我想我需要一个单独的nginx容器,从两个docker-compose应用程序分开运行。 我之前使用过nginx-proxy ,但是我的路由已经变得更加复杂了,所以我现在想运行我自己的nginx实例。 我无法弄清楚如何连接两个应用程序和nginx容器,使这一切都以一种理智的方式工作。 当我docker run nginx容器时,我得到: host not found in upstream "MY_CONTAINER_HOST_NAME" ,这表明我的应用程序主机名不是从nginx容器内parsing。 如果需要,我可以发布我的nginxconfiguration,但这实际上是一个dockernetworking/最佳实践问题。

Docker – 在Docker容器外部用PHP创build目录

这是我的第一个问题,所以希望我不会违反任何规则:) 我试图运行一个脚本,在/ var / www /中创build一个子目录。 我有一个脚本,应该创build一个自动转换为LEMP vHost的目录 – 它检查包含htdocs的子文件夹/ var / www目录,然后自动生成一个虚拟主机。 LEMP(nginx,PHP 5.6,MySQL)堆栈运行在Ubuntu 16.04 Server上的Docker容器中。 问题是,我无法find一个方法来获得适当的权限configuration这个任务。 我的代码如下所示: <?php if(mkdir("/var/www/".$_POST['name']."/htdocs", 0644, true)) { echo('vHost created'); } else { echo('ERROR!'); } ?> 我目前对/ var / www目录的权限是777(我知道这不是很安全的做法,但是我绝望了)。 我正在尝试各种权限和所有权 – 容器的内部和外部,但每次我调用一个PHP文件,它会返回以下错误。 Warning: mkdir(): Permission denied in /var/www/default/htdocs/createVhosts.php on line 42 任何想法或build议,我应该尝试?

Docker – index.html Nginx文件的无效共享

我有我的docker-compose.yml文件,如下所示: web: image: nginx:latest volumes: – /c/Users/marcin/docker/nginx-www/nginx/html/:/usr/share/nginx/html/ ports: – "80:80" In /c/Users/marcin/docker/nginx-www/nginx/html/我创build了以下内容的index.html文件: <html> <head> </head> <body> hello index </body> </html> 但是当我看到我的域名时,我看到空的页面,但在页面源看,我看到这样的东西: <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> 看起来Docker使用的是默认的Nginx文件,只取其中的一部分(可能是它的确切长度,因为它在我的index.html文件中),而其他文件如abc.html没有这样的问题(可能是因为它不存在默认在Nginx的图像中)。我怎样才能解决这个问题,以显示index.html文件的正确内容?

在Docker-compose的命令键中使用容器的环境variables

我在docker-compose.yml有两个服务: docker-compose.yml -gen和nginx。 Docker-gen链接到nginx。 为了使docker工作,我必须通过nginx容器的实际名称或散列,以便docker-gen可以在更改时重新启动nginx。 当我将docker-gen链接到nginx时,一组环境variables出现在NGINX_NAME -gen容器中,最让我感兴趣的是NGINX_NAME – 它是nginx容器的名字。 所以把$NGINX_NAME放在服务的command字段中并且让它起作用应该很简单。 但是, $NGINX_NAME在我启动服务时不会扩展。 通过docker日志查看我看到的行: 2015/04/24 12:54:27 Sending container '$NGINX_NAME' signal '1' 2015/04/24 12:54:27 Error sending signal to container: No such container: $NGINX_NAME 我的docker_config.yml如下所示: nginx: image: nginx:latest ports: – '80:80' volumes: – /tmp/nginx:/etc/nginx/conf.d dockergen: image: jwilder/docker-gen:latest links: – nginx volumes_from: – nginx volumes: – /var/run/docker.sock:/tmp/docker.sock – ./extra:/etc/docker-gen/templates […]

Docker撰写与PHP,MySQL,nginx连接问题

我有问题连接到MySQL容器。 泊坞窗,compose.yml version: '2' services: mysql: image: mysql:latest environment: MYSQL_ROOT_PASSWORD: JoeyW#1999 MYSQL_DATABASE: wiput MYSQL_USER: web MYSQL_PASSWORD: Web#1234 volumes: – ./mysql:/var/lib/mysql networks: – code-network php: image: wiput1999/php:latest volumes: – ./code:/code networks: – code-network nginx: image: nginx:latest ports: – "80:80" – "443:443" volumes: – ./code:/code – ./site.conf:/etc/nginx/conf.d/default.conf – /etc/letsencrypt:/etc/letsencrypt networks: – code-network networks: code-network: driver: bridge PHPtesting脚本: […]

Docker:是否可以在没有卷的情况下在两个容器之间共享数据?

我有2个容器: web和nginx 。 当我构buildweb容器时,容器中会生成前端的静态资源。 现在,我想在web和nginx之间共享这些资源,而无需在主机上使用卷。 否则,我将不得不在主机端构build这些静态资源,然后将其作为一个卷包含在web容器中,并与nginx容器共享。 从构build系统的angular度来看,这是不可取的。 有没有办法在web容器中build立静态资产,然后与nginx分享?