Articles of 容器

如何运行nginx的docker容器与自定义configuration?

我有一个Dockerfile和自定义nginxconfiguration文件(与Dockerfile在同一目录中),如下所示: Dockerfile: FROM nginx COPY nginx.conf /etc/nginx/nginx.conf nginx.conf文件: upstream myapp1 { least_conn; server http://domain.com:81; server http://domain.com:82; server http://domain.com:83; } server { listen 80; location / { proxy_pass http://myapp1; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } 我运行这两个命令: docker –tls build -t nginx-image . docker –tls run -d -p […]

最好的Kubernetes Nginx架构

我希望能遵循这个架构: -> service 1 -> nginx -> service 2 -> service 3 我想使用nginx(而不是使用kube-proxy的默认kube服务)的原因是它有x-accel-redirects,这对validation非常有用。 通常情况下,nginx和所有三个服务将在不同的盒子上。 与Kubernetes,我试图find构build这个最好的方式。 我知道有一种方法可以通过模拟服务代理来实现 ,但是这看起来像是一种非常简单的方法。 我正在考虑让nginx和所有这三个服务成为一个kube服务,所以stream量就是这样 – > kube-proxy – > nginx – > kube-proxy – >服务1,2,3 和nginxconfiguration看起来像 upstream backend { server backend1.example.com; # with skydns name, or the service ip which is static } server { location / { proxy_pass http://backend; } […]

如何将nginx用作Bluemix上的dynamic负载平衡代理服务器?

我正在使用docker–compose在bluemix容器服务上运行应用程序。 我使用nginx作为代理networking服务器和负载均衡器。 我发现了一个使用docker事件来自动检测新的Web服务器并将它们dynamic添加到nginxconfiguration中的图像: https://github.com/jwilder/nginx-proxy 但为了这个工作,我认为容器需要连接到一个dockersockets。 我不是很熟悉docker,我不知道这是什么,但基本上这是必要的,使图像可以听泊坞的事件。 图像文档中的运行命令如下所示: docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy 我一直无法在容器服务中运行它,因为它在主机上找不到/var/run/docker.sock文件。 bluemix文档有一个解释如何使用nginx进行负载平衡的教程 。 但是它需要在nginxconfiguration中有一个“硬编码”的web服务器列表。 我想知道如何运行nginx-proxy镜像,以便自动检测web实例?

如何访问运行在docker容器中的nginx web服务器提供的网页

我们正在尝试使用docker来运行nginx,但由于某些原因,我无法访问在docker容器内运行的nginx web服务器。 我们使用下面的Dockerfile启动了一个Docker容器: https : //github.com/dwyl/learn-docker/blob/53cca71042482ca70e03033c66d969b475c61ac2/Dockerfile (它是一个使用在8888端口上运行的nginx的基本Hello World)运行我们使用的容器: docker run -it ubuntu bash 我们使用docker inspect命令确定Container的IP地址: docker inspect –format '{{ .NetworkSettings.IPAddress }}' a9404c168b21 即: 172.17.0.11 当我尝试在浏览器http://172.17.0.11:8888/访问容器的IP地址和nginx端口时,我们得到了ERR_CONNECTION_TIMED_OUT 或使用curl: curl 172.17.0.11:8888 curl: (7) Failed to connect to 172.17.0.11 port 8888: Connection refused 为了试图解决这个问题,我们广泛search了一下,但是怀疑我们可能会问“错误”的问题。

如何创build一个AngularJS应用程序的Docker容器?

我有一个AngularJS应用程序有这样的结构: app/ —– controllers/ ———- mainController.js ———- otherController.js —– directives/ ———- mainDirective.js ———- otherDirective.js —– services/ ———- userService.js ———- itemService.js —– js/ ———- bootstrap.js ———- jquery.js —– app.js views/ —– mainView.html —– otherView.html —– index.html 我如何去创build自己的图像,并在容器上运行它? 我已经尝试运行它与Dockerfile没有成功,我相对较新的Docker,所以很抱歉,如果这很简单。 我只是想在一个http服务器上运行它(使用nginx也许?) 我试过这些帮助,没有成功: https://www.quora.com/Can-I-have-an-Angular-app-on-Docker-container Docker中的AngularJS和NodeJS应用程序 Dockerize您的Angular NodeJS应用程序

从Centos中拉出图片(最新)时出错,需要validation

我已经在CentOS 6.4 64位上安装docker.io,按照这里提到的步骤: http ://nareshv.blogspot.in/2013/08/installing-dockerio-on-centos-64-64-bit.html 现在我可以启动docker守护进程了。 当我search一个容器如下,它给我的结果 [root@test ~]# docker search tutorial Found 8 results matching your query ("tutorial") NAME DESCRIPTION mhubig/echo Simple echo loop from the tutorial. learn/tutorial jbarbier/tutorial1 mzdaniel/buildbot-tutorial kyma/ping Ping image from the tutorial. ivarvong/redis From the redis tutorial. Just redis-server and telnet on the base image. amattn/postgresql-9.3.0 precise base, PostgreSQL 9.3.0 […]

多NIC和Docker容器

我正在尝试解决有关Docker容器和路由的特定问题。 Docker主机正在运行几个networking接口(3G USB调制解调器),每个networking接口都可以上网。 所以,总之, eth0 – WAN IP 1 ppp0 – WAN IP 2 ppp1 – WAN IP 3 ppp2 – 广域网IP 4 如果我想让容器使用特定的容器,如何指定每个容器应该使用哪个NIC?

使用CLONE_NEWNS设置效果父项后,使用clone()方法mount()

我对这里发生的事情有点困惑。 我正在按照一个指南 ,在CLONE_NEWNS标志设置后调用克隆之后添加了一个新的挂载点。 挂载点应该只存在于subprocess中。 我正在尝试改变新的文件系统命名空间,它似乎影响父母。 我的C程序非常简单。 主要会调用克隆 pid_t pid = clone(child_exec,c_stack, SIGCHLD | CLONE_NEWNS | CLONE_NEWPID ,args); args是一个包含exec命令的聊天数组。 int child_exec(void *arg) { int err =0; char **commands = (char **)arg; mount("none", "/mytmp", "tmpfs", 0, ""); execvp(commands[0],commands); return 0; } 如果传递给execvp的命令是mount我希望输出包含/ mytmp挂载点,并在程序退出后再次运行命令mount ,以看不到/ mytmp出现。 这没有发生。 我在调用execvp时以及在运行mount之后在外面看到它。 我尝试使用MS_PRIVATE标志挂载并使用unshare(CLONE_FS); 我也有一个类似的问题,我试图从subprocess卸载/ proc和获取资源是繁忙的错误。 我认为这不应该发生在一个新的命名空间。

克隆后用CLONE_NEWNS标志装载文件系统

我试图实现以下情形: clone()主进程与CLONE_NEWNS标志(这意味着新的挂载名称空间) 在subprocess中mount()新的文件系统 subprocess完成,并在此进程中创build的所有文件系统都被卸载 但是它并不像我预期的那样工作,我仍然在主进程中看到挂载的文件系统。 我究竟做错了什么? 来源在这里https://github.com/dmitrievanthony/sprat/blob/master/src/container.c#L47 系统默认是AWS Ubuntu, ubuntu@ip-172-31-31-112:~/sprat$ uname -a Linux ip-172-31-31-112 4.4.0-53-generic #74-Ubuntu SMP Fri Dec 2 15:59:10 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

无法附加到运行Docker容器的bash

在连接到bash实例并保持容器运行时遇到麻烦。 要更详细。 我在这里运行容器: $ docker run -dt –name test ubuntu bash 现在应该是实际运行,还没完成。 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f3596c613cfe ubuntu "bash" 4 seconds ago Up 2 seconds test 在此之后,我正在试图附加到该容器运行的bash实例。 喜欢这个: $ docker attach test 运行这个命令,我可以写一些标准input,但没有结果跟随。 我不知道bash是否正在input我input的行。 有没有其他的方法来打破,使容器运行? 我知道,我可以运行一个不同的bash实例,并使用docker exec -it test bash 。 但更一般的是,有没有办法连接到在Docker容器中运行的进程? 有时,保存在容器中运行的进程的会话可能很有用。 解 感谢user2915097指出缺less-i标志。 所以现在我们可以有持久的bash会话。 例如,在停止并重新启动容器后,我们设置一些alias并重新使用。 $ […]