Articles of docker

Docker安装nginx

我新与docker,并希望在我的容器内安装nginxredirect在外部IP 我的目标是向docker中的http://localhost:3010/api/v1/service发送请求,并将其redirect到我的http://192.168.99.1:3010/api/v1/service 或者,也许我完全错了我的想法? 我试图做到RUN yum install nginx但我有 dockerfile

在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 […]

从端口80到其他端口的nginx代理

我的目标是将http://localhost/web1redirect到http://localhost:5000/ 。 我是nginx新手,日志给了我。 localhost:5000正在运行。 如果它可能是问题的一部分(nginx:阿尔派),我在docker上运行它? $curl localhost:5000 <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>For online documentation […]

Docker-compose Predis不是通过PHP连接的

我正在尝试使用docker连接PHP和redis(撰写) 泊坞窗,compose.yml version: '2' services: redis: image: redis:3.2.2 php: image: company/php:dev7 volumes: – .:/var/www/ networks: – net links: – redis nginx: image: company/nginx volumes: – .:/var/www/ – ./docker/nginx_conf:/etc/nginx/conf.d/ networks: – net ports: – 80:80 networks: net: driver: bridge 这一切运作良好,我能够运行nginx和php。 但是,当我试图与Redit连接它告诉我它不能得到地址信息: 致命错误:未捕获Predis \ Connection \ ConnectionException:php_network_getaddresses:getaddrinfo失败:名称或服务未知[/ tcp:// redis:6379]在/var/www/htdocs/vendor/predis/predis/src/Connection/AbstractConnection.php在线155 这是我试图连接的方式: $client = new \Predis\Client([ 'host' => 'redis', […]

docker运行,docker执行和日志

如果我做 : docker run –name nginx -d nginx:alpine /bin/sh -c 'echo "Hello stdout" > /dev/stdout' 我可以看到“Hello stdout”: docker logs nginx 但是当容器正在运行(docker run –name nginx -d nginx:alpine),我这样做: docker exec nginx /bin/sh -c 'echo "Hello stdout" > /dev/stdout' 或者当我将容器连接到: docker exec -it nginx /bin/sh 接着 : echo "Hello stdout" > /dev/stdout 在docker日志中我看不到任何东西。 而且由于我的Nginx访问日志被redirect到/ dev / stdout,所以我也看不到它们。 这个stdout在这里发生了什么?

如何为nginx docker实例指定一个特定的密码套件?

我正在Google Compute Engine上运行一个新build的docker 。 我把它转换成使用https,使用letsencrypt ,然后通过 letsencrypt获得A +评分。 但是,我正在使用的脚本代理不支持启用的两个TLS 1.0密码套件[ TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA , TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA ],我想添加TLS-DHE-RSA-WITH-AES-256-CBC-SHA由开源的rebol3 fork ren-c支持。 我修改了我的web.ssl.template.yml文件 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:\ ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:\ ECDHE-RSA-AES256-SHA; 至 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:\ ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:\ ECDHE-RSA-AES256-SHA:TLS-DHE-RSA-WITH-AES-256-CBC-SHA; 并重新使用应用程序 sudo ./launcher rebuild app 但是这不会改变可用的cipher_suites。 我现在想知道是否必须直接改变nginx.conf,而不是要求话语构build脚本来做到这一点…

错误parsingHTTP 404响应正文:无效字符“<”寻找价值docker的开始

我目前正在尝试configurationnexus3作为docker映像的私有registry,nginx充当反向代理。 在NexusDockerProxy(docker proxy),NexusDockerHosted(docker hosted,http port:4444)和NexusDockerGroup(docker group,http port:5555)之间创build了3个repos,包括托pipe和代理。 nexus使用nginxconfiguration,我们使用自签名证书,并将其添加到nginxconfiguration文件中。 server { proxy_send_timeout 120; proxy_read_timeout 300; proxy_buffering off; tcp_nodelay on; server_tokens off; client_max_body_size 1G; listen 80; server_name server908.int.org.com; location / { rewrite ^(.*) https://server908.int.org.com$1 permanent; } } server { listen 443; server_name server908.int.org.com; keepalive_timeout 60; ssl on; ssl_certificate /etc/ssl/certs/orgnexus.crt; ssl_certificate_key /etc/ssl/certs/orgnexus.key; ssl_ciphers HIGH:!kEDH:!ADH:!MD5:@STRENGTH; ssl_session_cache shared:TLSSSL:16m; ssl_session_timeout 10m; […]

基于Docker的Rails应用程序的nginx维护页面

我想我有一个鸡与鸡蛋的情况: 我的Rails应用程序是基于Docker的,我为nginx,Rails,Resque worker,Redis和MySQL提供了几个图像。 我目前的部署实施(简单地说)是: docker-compose build docker-compose down … compile assets … migrate docker-compose up 哪个效果很好,但是当然如果我在部署期间浏览到应用程序,我没有任何反应,这不是很好的用户体验。 我知道在站点处于维护模式时提供的nginx中设置了一个“维护”页面,但是nginx图像是docker-compose规范的一部分,所以也会下降。 将所有的图像放在一个docker-compose规范中,确实使部署更容易 – 如果任何图像(包括nginx)中的任何内容发生变化,将会自动部署。 特别是因为nginx,Rails,MySQL等都在同一个networking中。 如果nginx是docker-compose规范的一部分,那么我应该如何在应用程序重新部署时继续提供维护页面? (如果它有所作为,我使用主机上的gitlab和gitlab-runner容器来执行从回购部署。) 谢谢

Docker / Angular4 / Nginx

我是Docker的初学者,我创build了这个Dockerfile FROM nginx:1.13-alpine ENV APP_PATH /app ENV PATH $APP_PATH/node_modules/@angular/cli/bin/:$PATH RUN apk add –update –no-cache nodejs && mkdir $APP_PATH && rm -rf /etc/nginx/conf.d/* WORKDIR $APP_PATH COPY . . COPY nginx/default.conf /etc/nginx/conf.d/ RUN npm install \ && ng build –aot –prod \ && rm -rf /usr/share/nginx/html/* \ && mv ./dist/* /usr/share/nginx/html/ \ && npm cache clean \ […]

我怎么能删除需要两个docker集装箱一起使用桥接networking?

我有三个docker集装箱: 1:在端口8080上可访问的nginx容器,不使用桥接networking 2:使用桥接networking在端口8080上运行tomcat的xwiki容器 3:承载xwiki数据库的Postgres容器,可以使用与xwiki容器相同的桥接networking在端口5432上访问 我想能够设置nginx反向代理并加载一个url,如http:// site-root / xwiki的xwiki网站,但它不能做到这一点,因为它不在同一个桥接networking,我得到一个不路由到主机错误… 所有的主机都可以从远程主机使用docker hosts ip和相应的容器端口访问… 我已经创build了不使用桥接networking来testing这个xwiki和postgres容器,但是xwiki tomcat服务器失败,因为xwiki无法findpostgres服务器,我得到下面的错误作为一个tomcatexception: java.net.UnknownHostException: postgres-db-server 是否消除了为xwiki和Postgres容器使用桥接networking的需要,并使用docker hosts IP和它们各自的端口号进行通信? 我想我可能需要编辑xwiki容器中的tomcatconfiguration,以便它指向使用docker hosts IP和postgres默认端口的postgres服务器… 任何人都可以给我一个想法,如果这听起来像是正确的解决scheme,或者如果我缺less关于桥接networking的需要的东西? 我意识到一个可能的解决scheme是将nginx容器设置为使用相同的桥接networking,但我也希望nginx服务能够反向代理在docker主机上运行的node.js服务器…(不是通过docker) 我应该只是containerise节点和运行所有容器使用相同的桥接networking,逻辑上应该消除这个问题,但我担心,它可能会导致其他问题下线… docker主机在Centos 7上运行 用于手动运行容器的命令如下所示: Nginx的 docker run -dti –name nginx-dev –hostname nginx-dev -p 80:80 -v /nginx/www:/usr/share/nginx/html:ro -v /nginx/conf:/etc/nginx -P -d nginx Postgres的 docker run –net=xwiki-nw –name postgres-db-server -p 5432:5432 -v /postgres/data:/var/lib/postgresql/data -e […]