Tag: Linux容器

不安全的procfs-linux命名空间暴露

我读过这里https://www.nccgroup.trust/globalassets/our-research/us/whitepapers/2016/april/ncc_group_understanding_hardening_linux_containers-1-1.pdf关于linux命名空间威胁之一: 由于缺乏名称空间支持,/ proc /的暴露提供了重要的攻击面和信息披露的来源(…) 我怕我不明白。 毕竟,创build一个挂载命名空间是可能的,那么上面这个ciatation是什么意思,怎么看呢? 例如,当我ls /proc/在我的主机上,我在ls /proc/在docker容器中看到一个区别

Docker可从外部访问的registry,502代理错误,TLS握手错误

Docker版本: 客户端:版本:17.06.2-ce API版本:1.30 Go版本:go1.8.3 Git commit:cec0b72内置:星期二9月5日19:57:21 OS / Arch:linux / amd64 服务器:版本:17.06.2-ce API版本:1.30(最低版本1.12)Go版本:go1.8.3 Git commit:cec0b72内置:星期二9月5日19:59:19 OS / Arch:linux / amd64实验:假 docker exec 96f0cb141c8bregistry–version:registrygithub.com/docker/distribution v2.6.2 重现我的错误: docker run -d –restart=always –name registry5000 -v `pwd`/certs:/certs -e REGISTRY_HTTP_ADDR=0.0.0.0:5000 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert.pem -e REGISTRY_HTTP_TLS_KE Y=/certs/privkey.pem -p 5000:5000 registry:2 docker push registry.domain.com/my-registry 输出是: *推送是指一个存储库[registry.corobor.com/my-registry] 73c12ad782ae:在1秒内重试 98b882d4bdc0:在1秒内重试 f9cee97711b2:在1秒内重试 3de32dfabd85:在1秒内重试 2b0fb280b60d:在1秒内重试 收到意外的HTTP状态:502代理错误* 我的registry容器的日志: […]

Docker daemon.json日志configuration不起作用

我有一个mongodbdocker集装箱(股票从docker回购)下载。 其日志大小不受限制(/var/lib.docker/containers/'container_id'/'container_id'-json.log) 这最近造成了一个服务器填满,所以我发现我可以指示docker守护程序来限制一个容器的日志文件的最大大小,以及分裂后它将保持的日志文件的数量。 (请原谅天真,这是一个工具环境,所以事情的设立是为了满足眼前的需求,而且经常是痛苦的缺乏计划) 停止集装箱是不可取的(尽pipe它不会带来世界末日),因此这样做可能是一个合适的计划。 通过实验,我发现在docker run命令中docker run同一个docker镜像的不同实例,并包含–log-opt max-size=1m –log-opt max-file=3可以很好地完成我想要的操作。 我明白,我可以将其包含在docker daemon.json文件中,以便它可以在全局为所有容器工作。 我尝试添加以下文件“/etc/docker/daemon.json” { "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } } 然后我发送了一个-SUPUP给守护进程。 我确实观察到守护进程的日志吐出了一些关于重新加载configuration的信息,并提到了我编辑的确切文件path。 (注意:这个文件以前不存在,我创build了它并添加了内容。)这对正在运行的Mongo容器的日志输出没有影响。 在重新加载守护进程之后,我也尝试再次实例化Mongo容器的不同实例,并且也没有遵守守护进程应该具有的日志指令。 我看到它的日志通过了10米大关,继续前进。 我的问题是: 是否应该有通过守护进程进行日志logging更新以影响正在运行的容器? 如果没有,有没有办法告诉容器重新加载这个信息,而仍然运行? (我看到docker update但这似乎不是可以更新的configuration选项之一。 我的configuration有问题吗? 我testing了包括一个无意义的指令,看看错误会失败,而他们没有。 不在模式中的指令在守护进程日志中引发错误。 这表明,我添加(上面显示)的内容,至less是预期的,虽然可能不完整或什么的。 这些命令似乎在运行命令中工作,但不在configuration中。 另外,我最初试图将“3”作为一个数字, 并且提出了一个错误,当我把它串起来的时候也消失了。 我在文件“/var/lib.docker/containers/'container_id'/hostconfig.json”中看到了Mongo容器的不同实例,其中我在其运行命令中包含了这些设置可见的指令。 手动编辑Mongo容器的生产实例的这个文件来匹配不同的概念容器configurationcertificate是否有效/安全? 请参阅下面的一些系统细节: Docker版本1.10.3,编译20f81dd Ubuntu 14.04.1 LTS 我的主要目标是理解为什么全局configuration似乎不起作用,以及是否有办法在不中断它的情况下对正在运行的容器进行此更改。 预先感谢您的帮助!

kill +启动docker映像后TCP连接失败

背景 我有多个Python应用程序在同一台机器上的泊坞窗运行。 每个python应用程序使用twisted来创build服务器和客户端以TCP进行通信,每个进程侦听的端口都被configuration在一个静态文件中。 问题 有时,只有有时,当我重新启动一个或多个docker图像(我使用docker kill和docker run ),有一个机会,一个应用程序使用之前使用的端口仍在使用。 在docker run命令后, twisted会Unhandled error in Deferred: Error(没有更多的细节,只有这一行,可能是因为我的日志configuration)抛出Unhandled error in Deferred: ,当且仅当它是有问题的。 然后我用netstat -ntlp来检查那个特定的端口,我发现这个端口没有被监听。 而我尝试nc -l [PORT] ,它返回Address already in use 。 另外,我使用netstat -a | grep ESTABLISHED netstat -a | grep ESTABLISHED找出一些进程已经build立到该端口的TCP连接。 意思是我试图暂时解决这个问题 我重新启动了有问题的Docker镜像,直到听到端口。 我杀了以前与有问题的docker图像通信的其他docker图像,然后重新启动所有死亡的图像。 什么是预期的 我想知道为什么发生这种情况,以及如何解决这个问题。 我不想每次重新启动泊坞窗图像时检查netstat -ntlp 。 环境 : 操作系统: Ubuntu 14.04.5 LTS (GNU/Linux 4.4.0-53-generic […]

Docker容器访问父服务器中的本地主机

我的Docker容器有点问题。 我试图通过curl从容器访问到我的父服务器本地主机,以执行查询在elasticsearch。 Elastic只在父级服务器上工作。 curl http://127.0.0.1:9200 curl: (7) Failed to connect to 127.0.0.1 port 9200: Connection refused 容器IP为172.17.0.3,并能够从父服务器ping容器 它是我的docker构build cd ./api_docker container="$(docker ps | grep "visitors/api:gniewoy" | cut -d " " -f1)" git reset –hard HEAD && git pull && composer update && docker build -t visitors/api:gniewoy . && cd ../ docker kill $container && docker […]

Ubuntu Xenial – Docker Hello World冻结直到强制(Ctrl-C)停止

我正试图在这里遵循docker官方安装指南。 这一切都很好,直到我打docker run hello-world和docker pull hello-world导致以下 Using default tag: latest latest: Pulling from library/hello-world 5b0f327be733: Extracting [==================================================>] 974B/974B 我的docker version输出: Client: Version: 17.06.2-ce API version: 1.30 Go version: go1.8.3 Git commit: cec0b72 Built: Tue Sep 5 20:00:17 2017 OS/Arch: linux/amd64 Server: Version: 17.06.2-ce API version: 1.30 (minimum version 1.12) Go version: go1.8.3 Git commit: cec0b72 […]

docker工图像不能运行cent os

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 13be43ecefea 196e0ce0c9fb "/bin/bash" About an hour ago Exited (0) About an hour ago reverent_wing ff1b2744bf2c microsoft/mssql-server-linux "/bin/sh -c /opt/mssq" About an hour ago Exited (1) About an hour ago ecstatic_brattain d3504f132ddd microsoft/mssql-server-linux "/bin/sh -c /opt/mssq" 2 hours ago Exited (1) 2 hours ago compassionate_cray 我是新来的docker,我已经安装在OS 7的docker。我已经下载MSSQL和centos图像。 当我运行容器。 […]

从systemd处理(重新)启动Docker容器意外退出

我有一个docker集装箱。在linux服务器docker容器的重新启动过程中,因此在systemd中停止了脚本文件,为容器重新启动添加脚本文件。此脚本也停止了chef-client。 但是脚本只执行了一半的命令。我不知道为什么在主客户端停止之后它会停止。之后它不会继续。 重新启动脚本: [root@server01 user1]# more /apps/service-scripts/docker-container-restart.sh #!/bin/bash echo "Starting to stop the chef-client automatic running.." service chef-client stop echo "Completed the stopping the chef-client automatic running" echo "Restart check… the Applicaiton Container $(date)" IsAppRunning=$(docker inspect -f '{{.State.Running}}' app-prod) echo "IsAppRunning state $IsAppRunning" if [ "$IsAppRunning" != "true" ]; then IsAppRunning=$(docker inspect -f '{{.State.Running}}' app-prod) […]

docker上的文件权限显示“?”

我的docker文件看起来像 # https://github.com/elastic/elasticsearch-docker FROM docker.elastic.co/elasticsearch/elasticsearch:5.5.1 USER root RUN rm -rf /home/* RUN adduser -d /home/backup backup USER backup RUN cd /home/backup && mkdir -p local/elastic USER root RUN chown root:root -R /home/backup RUN chmod -R a+rX,u+w /home/backup # Add your elasticsearch plugins setup here # Example: RUN elasticsearch-plugin install analysis-icu USER elasticsearch 当我连接到我的容器,并运行ls -ltr / […]

无法连接到Docker守护进程更新了Linux内核之后

docker守护进程在之前运行良好,但在将4.10版本的Linux内核版本更新到4.12 ,发现Docker守护进程无法工作: 当我运行docker ps出现错误: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 我运行systemctl status docker.service查看详细信息,输出错误: systemd[1]: Failed to start Docker Application Container Engine. 和来自dockerd':的详细错误dockerd': ERRO[0001] [graphdriver] prior storage driver aufs failed: driver not supported Error starting daemon: error initializing graphdriver: driver not supported 操作系统: linux Ubuntu 16.04 LTS内核: v4.12 ,docker版本: […]