Questions tagged «docker»

Docker是一个为应用程序创建容器的应用程序。


5
无法在64位ubuntu上找到软件包docker-ce
我正在尝试按照官方安装指南在Ubuntu 64计算机上安装Docker 。 可悲的是,Ubuntu似乎无法找到该docker-ce软件包。有任何解决方案或至少跟踪发生的事情的想法吗? 这里为您提供一些细节... $ uname --all; sudo grep docker /etc/apt/sources.list; sudo apt-get install docker-ce Linux ubuntu 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable. # deb-src [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable. Reading package lists... Done Building dependency tree Reading …

4
将SIGTERM转发给Bash中的孩子
我有一个Bash脚本,看起来与此类似: #!/bin/bash echo "Doing some initial work...."; /bin/start/main/server --nodaemon 现在,如果运行脚本的bash shell收到SIGTERM信号,它也应该将SIGTERM发送到正在运行的服务器(该服务器会阻塞,因此无法进行陷阱)。那可能吗?
86 bash  shell  signals  docker 

3
使用4.3内核创建线程失败,并显示“资源暂时不可用”
我在带有多个容器的Arch Linux(内核4.3.3-2)上运行docker服务器。自从我上次重启以来,Docker服务器和容器中的随机程序都崩溃,并显示一条消息,提示无法创建线程或(较不频繁)进行分叉。根据程序的不同,特定的错误消息也有所不同,但是大多数错误消息似乎都提到了特定的错误Resource temporarily unavailable。有关某些示例错误消息,请参见本文末尾。 现在有很多人收到此错误消息,并对它们有很多响应。真正令人沮丧的是,每个人似乎都在猜测如何解决该问题,但是似乎没有人指出如何确定问题的许多可能原因中的哪一个。 我已经收集了以下5种可能的错误原因以及如何验证它们在我的系统上不存在的原因: 在/proc/sys/kernel/threads-max(source)中配置的线程数存在系统范围的限制。就我而言,该设置为60613。 每个线程都在堆栈中占用一些空间。堆栈大小限制是使用ulimit -s(source)配置的。我的壳的极限曾经是8192,但我已经通过将增加其* soft stack 32768成/etc/security/limits.conf,因此它ulimit -s现在的回报32768。我还通过将(source)添加LimitSTACK=33554432到docker进程中,并通过查看docker容器并在其中运行来验证该限制是否适用。/etc/systemd/system/docker.service/proc/<pid of docker>/limitsulimit -s 每个线程都会占用一些内存。使用来配置虚拟内存限制ulimit -v。在我的系统上,它设置为unlimited,并且我3 GB的内存中有80%可用。 使用的进程数有限制ulimit -u。在这种情况下,线程被视为进程(source)。在我的系统上,限制设置为30306,对于docker守护程序和docker容器内部,限制为1048576。可以通过运行ls -1d /proc/*/task/* | wc -l或通过运行ps -elfT | wc -l(source)找出当前正在运行的线程数。在我的系统上,它们介于700和之间800。 打开文件的数量有限制,根据某些来源的资料,在创建线程时这也很重要。限制是使用配置的ulimit -n。在我的系统和docker内部,限制设置为1048576。可以使用lsof | wc -l(source)找出打开的文件数,在我的系统上大约是30000。 上次重启之前,我正在运行内核4.2.5-1,现在我正在运行4.3.3-2。降级到4.2.5-1可以解决所有问题。其他提到问题的帖子是this和this。我已经打开了Arch Linux的错误报告。 内核中发生了什么变化可能导致这种情况? 以下是一些示例错误消息: Crash dump was written to: erl_crash.dump Failed to create aux thread …
39 linux  docker  limit  fork  thread 



2
如何配置Centos 7 FirewallD以允许Docker容器自由访问主机的网络端口?
我在CentOS 7上安装了docker,并且正在运行firewallD。 从容器内部转到主机(默认为172.17.42.1) 启用防火墙 container# nc -v 172.17.42.1 4243 nc: connect to 172.17.42.1 port 4243 (tcp) failed: No route to host 关闭防火墙 container# nc -v 172.17.42.1 4243 Connection to 172.17.42.1 4243 port [tcp/*] succeeded! 我已经阅读了关于firewalld的文档,但我并不完全理解它们。有没有一种方法可以简单地允许docker容器中的所有内容(我猜是在docker0适配器上)不受限制地访问主机?

2
Docker —警告:不支持交换限制
我在Ubuntu 16.04上运行Docker(1.9.1)。当我运行docker info输出的最后一行时说WARNING: No swap limit support。 INFO[0781] GET /v1.21/info Containers: 0 Images: 0 Server Version: 1.9.1 Storage Driver: aufs Root Dir: /var/lib/docker/aufs Backing Filesystem: extfs Dirs: 0 Dirperm1 Supported: true Execution Driver: native-0.2 Logging Driver: json-file Kernel Version: 4.4.0-62-generic Operating System: Ubuntu 16.04.1 LTS (containerized) CPUs: 2 Total Memory: …
29 swap  docker 

9
守护程序运行时,为什么会出现“无法连接到Docker守护程序”的提示?
Docker服务显然正在运行: $ systemctl status docker.service ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2015-12-28 19:20:50 GMT; 3 days ago Docs: https://docs.docker.com Main PID: 1015 (docker) CGroup: /system.slice/docker.service └─1015 /usr/bin/docker daemon -H fd:// --exec-opt native.cgroupdriver=cgroupfs $ ps wuf -u root …

1
LXC容器内部和外部的用户权限?
我正在服务器上的Docker LXC容器内部运行某些服务,并且我开始对它们进行认真的处理。 我尚不清楚的一件事是容器内部和外部用户权限的工作方式。例如,如果我在一个容器中运行MySQL并将其数据目录设置为/dataDocker卷(即Docker卷),那么该容器内部和外部的权限如何影响访问策略? 显然,其想法是在容器(即mysql:mysql)中以其自己的用户身份运行MySQL,并赋予其对该目录的读写权限。我认为这将非常简单,只需chmod进入目录等即可。但是,这在容器外如何工作?现在我有了这个名为“数据”的Docker共享卷,如何管理对它的访问控制? 我特别希望能够在Docker容器外部运行非特权用户,该用户将定期访问MySQL共享卷并备份数据。 如何设置权限,用户和组,以便主机上的特定用户可以读取/写入Docker共享卷中的文件和文件夹?

4
从Docker映像中提取文件?
我想从Docker映像中提取文件,而不必运行该映像。 docker save对于我来说,该选项不是当前可行的选项,因为它节省了太多文件,仅用于解压缩特定文件。
24 docker 

4
`curl |有什么区别?sh`和`sh -c“ $(curl)”`?
这个问题是从Server Fault 迁移过来的,因为可以在Unix&Linux Stack Exchange上回答。 迁移 2年前。 例如,一种简单的Docker安装方法是: curl -sSL https://get.docker.com/ | sh 但是,我也看到了一些类似于Docker的示例: sh -c "$(curl -sSL https://get.docker.com/)" 它们在功能上似乎相同,但是是否有理由在一个之上使用一个?还是仅仅是偏爱/审美? (值得注意的是,运行来自未知来源的脚本时要格外小心。)

1
从Docker容器中提取文件?
我可以看到可以通过以下方式将文件插入Docker容器insert: docker insert IMAGE URL PATH 有没有一种方法可以获取Docker容器中文件的内容并将其保存在主机操作系统上的某个位置?我想提取配置文件的值并将其存储在主机操作系统上。
20 linux  docker 

3
Docker说“设备上没有剩余空间”,但是系统有足够的空间吗?
我正在尝试运行可在其他系统上使用的docker映像(如果愿意,您甚至可以从dockerhub提取它dougbtv/asterisk),但是,在我的普通工作站上,它在抱怨可用空间(看起来像)它可以使Docker映像脱机。 我尝试运行它,当我这样做时,我收到一条错误消息,指出它空间不足。这是我尝试运行它的示例,它抱怨空间。 [root@localhost docker]# docker run -i -t dougbtv/asterisk /bin/bash Timestamp: 2015-05-13 07:50:58.128736228 -0400 EDT Code: System error Message: [/usr/bin/tar -xf /var/lib/docker/tmp/70c178005ccd9cc5373faa8ff0ff9c7c7a4cf0284bd9f65bbbcc2c0d96e8565d410879741/_tmp.tar -C /var/lib/docker/devicemapper/mnt/70c178005ccd9cc5373faa8ff0ff9c7c7a4cf0284bd9f65bbbcc2c0d96e8565d/rootfs/tmp .] failed: /usr/bin/tar: ./asterisk/utils/astdb2sqlite3: Wrote only 512 of 10240 bytes /usr/bin/tar: ./asterisk/utils/conf2ael.c: Cannot write: No space left on device /usr/bin/tar: ./asterisk/utils/astcanary: Cannot write: No space left …

2
如何在Jenkins的Docker容器中运行构建
我正在尝试使用Jenkins在Docker容器中构建C ++项目。我在Jenkins或在Jenkins之外的容器中构建都没有问题。 下面是我尝试过的。为了清楚起见,我省略了卷映射。 情况1 以下命令在外壳中成功运行了构建。 docker run --rm --interactive=true --tty=true $IMAGE make 但是,当在Jenkins中作为“执行外壳程序”步骤运行时,Docker返回以下错误。 cannot enable tty mode on non tty input 情况二 以下命令与上一个命令相似,但是禁用了交互性。 docker run --rm $IMAGE make Jenkins可以成功运行构建。但是,中止构建时存在严重问题。该构建立即被标记为已中止,但是容器一直运行直到构建完成。退出后,也不会移除容器。 在shell中运行时,命令会成功构建,但是无法中断它。退出后,容器也将被取出。 题 有谁知道如何在Jenkins的Docker容器中干净地运行构建并保留中止构建的功能吗? 不能选择使用任何Jenkins插件,因为Docker调用位于脚本内并且无法轻松提取。
18 tty  docker  pty  jenkins 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.