标签: docker-container

Docker:使用套接字在2个容器之间进行通信

我有2个Docker容器:App和Web.

App - 带有php应用程序代码的简单容器.它仅用于存储并将代码传递到远程Docker主机.

应用程序图像Dockerfile:

FROM debian:jessie
COPY . /var/www/app/
VOLUME ["/var/www/app"]
CMD ["true"]
Run Code Online (Sandbox Code Playgroud)

Web - Web服务容器,由PHP-FPM + Nginx组成.

Web镜像Dockerfile:

FROM nginx

# Remove default nginx configs.
RUN rm -f /etc/nginx/conf.d/*

# Install packages
RUN apt-get update && apt-get install -my \
  supervisor \
  curl \
  wget \
  php5-cli \
  php5-curl \
  php5-fpm \
  php5-gd \
  php5-memcached \
  php5-mysql \
  php5-mcrypt \
  php5-sqlite \
  php5-xdebug \
  php-apc

# Ensure that PHP5 FPM is run as root.
RUN sed -i "s/user …
Run Code Online (Sandbox Code Playgroud)

sockets deployment docker docker-container

7
推荐指数
1
解决办法
7894
查看次数

Windows容器无法启动时出现错误,"无法在网络上创建端点nat:HNS失败并显示错误:无法创建端点".

我一直在Windows Server 2016 TP5上尝试Windows容器.突然,我在运行带端口maping选项的容器时开始出错-p 80:80

c:\>docker run -it -p 80:80 microsoft/iis cmd
docker: Error response from daemon: failed to create endpoint sharp_brahmagupta on network nat: HNS failed with error : Failed to create endpoint.
Run Code Online (Sandbox Code Playgroud)

我确保没有其他容器正在运行,并且主机上的端口80未被任何其他服务使用.

有没有人面临同样的问题?

windows-server docker-container

7
推荐指数
3
解决办法
9557
查看次数

如何从Windows中的Docker容器访问“ http:// localhost”?

我有一组在Windows 10中使用Docker运行的容器,这是输出docker-compose ps

> docker-compose ps
     Name                    Command               State                          Ports
--------------------------------------------------------------------------------------------------------------
db_mysql          docker-entrypoint.sh mysqld      Up      3306/tcp
elk               /usr/bin/supervisord -n -c ...   Up      0.0.0.0:81->80/tcp
php71-fpm-nginx   /config/bootstrap.sh             Up      443/tcp, 0.0.0.0:80->80/tcp, 0.0.0.0:9001->9001/tcp
Run Code Online (Sandbox Code Playgroud)

这是输出docker inspect

> docker inspect php71-fpm-nginx
[
    {
        ...
            "NetworkMode": "anotherlampdocker_default",
            "PortBindings": {
                "80/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "80"
                    }
                ],
                "9001/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "9001"
                    }
                ]
            },
        ...
        "Mounts": [
            {
                "Source": "/d/Development/www",
                "Destination": "/data/www",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            }, …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose docker-networking docker-container

7
推荐指数
1
解决办法
7332
查看次数

FTP文件到远程服务器上的docker容器中

如何使用FTP客户端将传输文件传输到在远程Ubuntu服务器上运行的Docker容器中?我可以SSH到服务器并使用docker cp,这很好.但我有一个客户需要能够使用像FileZilla这样的东西.这可能吗?

ftp filezilla transfer docker docker-container

7
推荐指数
1
解决办法
5973
查看次数

暂停与停靠在码头工人

我试图了解命令docker stop ContainerID和之间的区别docker pause ContainerID.根据此页面,它们都用于暂停现有的Docker容器.

restart docker pause docker-container

7
推荐指数
3
解决办法
7186
查看次数

从ECS Docker容器写入cloudwatch时缺少日志行

(在将所有日志打印到CloudWatch Logs之前退出AWS-ECS上的Docker容器)为什么CloudWatch Logs组的某些流不完整(即Fargate Docker Container成功退出,但日志突然停止更新)?间歇地在几乎所有日志组中看到此消息,但并不是在每个日志流/任务运行时都看到这一点。我正在1.3.0版上运行


说明:
A Dockerfile使用该CMD命令运行node.js或Python脚本。

这些不是服务器/长时间运行的进程,我的用例要求容器在任务完成时退出。

样本Dockerfile:

FROM node:6
WORKDIR /path/to/app/
COPY package*.json ./
RUN npm install
COPY . .
CMD [ "node", "run-this-script.js" ]
Run Code Online (Sandbox Code Playgroud)


当使用本地在终端上运行此命令时,所有日志都会正确打印到终端的stdout / stderr中docker run
要将其作为Fargate上的ECS任务运行,请awslogs从CloudFormation模板设置日志驱动程序为。

...
LogConfiguration:
   LogDriver: 'awslogs'
     Options:
        awslogs-group: !Sub '/ecs/ecs-tasks-${TaskName}'
        awslogs-region: !Ref AWS::Region
        awslogs-stream-prefix: ecs
...
Run Code Online (Sandbox Code Playgroud)

看到cloduwatch日志输出有时不完整,我进行了测试并检查了CW Logs Limits中的每个限制,并且确定问题不存在。
我最初以为这是节点js在console.log()刷新之前异步退出的问题,或者进程退出得太早了,但是当我也使用另一种语言时,也会出现相同的问题-这使我相信这与代码,而是专门使用cloudwatch。
通过添加一个睡眠计时器在代码中引起延迟对我没有用

有可能由于docker容器在任务完成后立即退出,因此日志没有足够的时间写到CWLogs,但是必须有一种方法来确保不会发生这种情况?

样本日志:流不完整:

{ "message": "configs to run", "data": {"dailyConfigs":"filename.json"]}}
running for filename
Run Code Online (Sandbox Code Playgroud)

完成的日志流:

{ "message": "configs …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-ecs docker amazon-cloudwatchlogs docker-container

7
推荐指数
2
解决办法
1341
查看次数

AWS ECS Fargate Container Healthcheck command

I am trying to setup aws ecs fargate deployment configuration. I was able to run containers without container health check. But, I want to run container health checks too. I tried all possible scenarios to achieve this. But, no luck.

容器健康检查命令

i tried with the below aws recommeded commands to verify container health checks from the listed url.

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#container_definition_healthcheck

  1. [ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]
  2. [ "CMD-SHELL" "curl -f 127.0.0.1 || exit 1" ]

I tried with above …

amazon-web-services amazon-ecs docker-container aws-fargate

7
推荐指数
2
解决办法
1590
查看次数

如何在不重启整个容器的情况下在 docker 容器上重启 Node?

我有一个容器 ==>FROM node:5 每次更改代码后节点都应该重新启动。

但是我没有办法在不重启整个 docker 容器的情况下重启 Node 服务器。

npm install在每次重新启动容器时都会运行 dockerfile 上的许多文件,并且在每次更改代码后等待所有这些文件很烦人。

我已经在使用共享文件夹在我的容器中保存最新代码。

node.js docker boot2docker docker-container

6
推荐指数
2
解决办法
6378
查看次数

Docker错误 - 无法删除容器

我最近没有升级Docker.我曾经能够毫无错误地删除容器.我现在一直都这样:

docker rm -f 05344fa394a4

Error response from daemon: driver "overlay" failed to remove root filesystem for 
05344fa394a43e5080deb1a43fdeab3a6f141038069f1a49209e29ec8f06a20c: 
remove /var/lib/docker/overlay/c9eb21a91ae1a37a121855a1ef65a89593994dc036affa9ff295b59b4eca1af5/merged: 
device or resource busy
Run Code Online (Sandbox Code Playgroud)

我基本上必须重新启动(systemctl restart docker不修复)才能成功删除并继续.任何人都对可能出错的东西有任何见解?

root和Docker 17.06 一样在Centos 7.3上运行.一切都在/var/lib/docker/var/lib/docker/overlay它的拥有者root:root是保护700 /var/lib/docker/network实际上是750]

docker docker-container

6
推荐指数
1
解决办法
2069
查看次数

Jenkins Pipeline和Docker-如何从容器归档文件

根据Jenkins Pipeline Docs的介绍,在使用Docker时,我应该能够使用管道步骤。但是,“ archiveArtifacts ”似乎不起作用:

    def container = docker.image("some_image")
    container.inside {
        sh 'date > /tmp/test.txt'
        sh 'cat /tmp/test.txt' //works, shows file

        def fileContents = readFile '/tmp/test.txt' //works
        echo "Contents: ${fileContents}" //works, shows file

        archiveArtifacts '/tmp/*.txt' //FAILS
    }
Run Code Online (Sandbox Code Playgroud)

错误:找不到与文件模式“ /tmp/*.txt”匹配的工件。配置错误?”。

我尝试过的事情:

  • 如果这是文件同步问题,请在存档步骤之前添加sync和sleep(5)。
  • 尝试归档“ / *”和“ *”,以防它在主机上运行(相同的错误)。

关于归档Docker容器中生成的文件有什么建议吗?

PS:我打开了一个错误报告 ...看来archiveArtifacts仅适用于Docker容器中$ WORKSPACE中的文件。

jenkins docker jenkins-pipeline docker-container

6
推荐指数
1
解决办法
2651
查看次数