Docker、LXD 和 LXC 之间有什么区别。他们提供相同的服务还是不同的服务。
我有一个 Bash 脚本,它看起来类似于:
#!/bin/bash
echo "Doing some initial work....";
/bin/start/main/server --nodaemon
Run Code Online (Sandbox Code Playgroud)
现在,如果运行脚本的 bash shell 收到一个 SIGTERM 信号,它也应该向正在运行的服务器发送一个 SIGTERM(它会阻塞,所以不可能有陷阱)。那可能吗?
我正在尝试按照官方安装指南在 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 state information... Done
E: Unable to locate package docker-ce
Run Code Online (Sandbox Code Playgroud) 我想从 Docker 映像中提取文件而不必运行该映像。
该docker save选项目前对我来说不是一个可行的选择,因为它只是为了解压缩特定文件而节省了太大的文件。
我正在 Arch Linux(内核 4.3.3-2)上运行一个带有多个容器的 docker 服务器。自从我上次重新启动后,容器内的 docker 服务器和随机程序都崩溃了,并显示一条关于无法创建线程或(较少)fork 的消息。具体的错误信息因程序而异,但大多数似乎都提到了具体的错误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。我也增加了它的码头工人,过程将LimitSTACK=33554432进入/etc/systemd/system/docker.service(源,和我核实,该限制适用通过查看/proc/<pid of docker>/limits,并通过运行ulimit -s一个泊坞窗容器内。ulimit -v. 在我的系统上,它设置为unlimited,并且我的 3 GB 内存中有 80% 是空闲的。ulimit -u。在这种情况下,线程算作进程(源)。在我的系统上,限制设置为30306 …我在 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
Run Code Online (Sandbox Code Playgroud)
防火墙关闭
container# nc -v  172.17.42.1  4243
Connection to 172.17.42.1 4243 port [tcp/*] succeeded!
Run Code Online (Sandbox Code Playgroud)
我已经阅读了 firewalld 上的文档,但我并不完全理解它们。有没有办法简单地允许 docker 容器中的所有内容(我猜在 docker0 适配器上)不受限制地访问主机?
Dockerfile:
\nFROM maven:3.5.2-jdk-8\n\nRUN apt-get update && \\\n    apt-get install -y python-dev python-pip\nRUN pip install awscli --upgrade\nRun Code Online (Sandbox Code Playgroud)\n构建日志:
\nPreparing build context archive\xe2\x80\xa6\n[==================================================>]3380/3380 files\nDone\n\nSending build context to Docker daemon\xe2\x80\xa6\n[==================================================>] 23.19MB\nDone\n\nStep 1/17 : FROM maven:3.5.2-jdk-8\n ---> d07bef19f01a\nStep 2/17 : RUN apt-get update &&     apt-get install -y python-dev python-pip\n ---> Running in ebed1b8ce61e\nIgn:1 http://security.debian.org stretch/updates InRelease\nIgn:2 http://deb.debian.org/debian stretch InRelease\nIgn:3 http://security.debian.org stretch/updates Release\nIgn:4 http://deb.debian.org/debian stretch-updates InRelease\nIgn:5 http://deb.debian.org/debian stretch Release\nIgn:6 http://deb.debian.org/debian stretch-updates Release\nIgn:7 http://deb.debian.org/debian stretch/main arm64 Packages\nIgn:8 http://deb.debian.org/debian stretch/main all Packages\nIgn:9 http://deb.debian.org/debian stretch-updates/main …Run Code Online (Sandbox Code Playgroud) 我们可以像这样在 docker 网站上搜索可用的图像文件:
在拉取之前,我如何知道下载大小是多少?
docker.io pull [image]
Run Code Online (Sandbox Code Playgroud) 我在 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: 3.664 GiB
Name: lenovo
ID: A3ZV:2EVK:U5QB:O7CG:PEDL:SANK:X74X:QNLC:VOTK:GFDR:S24T:C5KT
WARNING: No swap limit support
Run Code Online (Sandbox Code Playgroud)
这个警告是什么意思?我肯定有一个交换分区,正如free -mh我不明白为什么我的交换在下面没有条目所证明的那样available
total        used        free      shared  buff/cache   available
Mem: …Run Code Online (Sandbox Code Playgroud) 最近,Docker 宣布 Docker Desktop 将不再对某些类型的用户免费。请参阅博客文章中的公告。
\n我不需要 Docker Desktop\xc2\xae 独有的任何功能。我在一台装有 debian 的笔记本电脑上使用了 docker,这个版本对我来说已经足够了。
\n有没有办法在macOS上安装linux版本的docker?我需要引擎和 cli 工具,仅此而已。我运行构建命令、推送、标记、运行、docker-compose 等。
\n