我听说这个数字不等于图像内所有大小的图层相加。而且它也不是它占用的磁盘空间的大小。
现在我想通过源代码检查逻辑(在这个 repo: https://github.com/docker/docker-ce),因为眼见为实!但是在代码中导航了很多时间后,我发现我无法找到真正的imag-size-computing代码。
那么docker使用哪个函数/文件来执行大小逻辑呢?
我从官网下载了RPM包,但是安装的时候还是需要下载一些依赖。我需要在没有任何网络或存储库的情况下安装 docker-ce,所以我需要我依赖的所有 RPM 包以及它们的安装顺序。
Docker-CE 版本:18.03+
我正在尝试在 Ubuntu 20.04.3 LTS 上安装 docker。我从 *.deb 包安装。安装docker的时候,出现如下错误。
Failed to mount overlay: no such device storage-driver=overlay2
Run Code Online (Sandbox Code Playgroud)
我创建
{
"storage-driver": "overlay2"
}
Run Code Online (Sandbox Code Playgroud)
根据https://docs.docker.com/storage/storagedriver/overlayfs-driver/但这也没有帮助。
编辑1:
lsmod | grep overlay
返回空。
sudo modprobe overlay' returns fatal error. In fact, there are no module files under
/lib/modules/' 用于内核的“uname -a”版本。
我在使用docker-ce的 Ubuntu 18.04上遇到Docker问题。拉动容器时:
$ docker pull nginx
Run Code Online (Sandbox Code Playgroud)
或尝试登录时
$ docker login
Run Code Online (Sandbox Code Playgroud)
我收到以下消息:
来自守护程序的错误响应:获取https://registry-1.docker.io/v2/:proxyconnect tcp:tls:接收到长度超过20527的超大记录
我今天也清除并重新安装了最新版本,但没有帮助。有人解决吗?
我一直在尝试在 CentOS 7 上将 docker 从 19.03.2 降级到 18.09.9。我通过 yum 安装了它。
\n\n这是我到目前为止所尝试过的。
\n\n仅返回一个可用版本。
\n\n$ yum list docker-ce.x86_64 --showduplicates | sort -r \n * updates: centos4.zswap.net\n Loading mirror speeds from cached hostfile\n Loaded plugins: fastestmirror\n Installed Packages\n * extras: mirrors.usinternet.com\n * epel: d2lzkl7pfhq30w.cloudfront.net\n docker-ce.x86_64 3:19.03.2-3.el7 . @docker-ce-stable\n * base: centos4.zswap.net\n
Run Code Online (Sandbox Code Playgroud)\n\n没有运气,呃!
\n\n$ yum\xc2\xa0downgrade\xc2\xa0docker-ce.x86_64 3:18.09.9-3.el7\n
Run Code Online (Sandbox Code Playgroud)\n\n尝试使用下载的 rpm 包降级。也没有运气。
\n\n$ yum downgrade file docker-ce-cli-18.09.9-3.el7.x86_64.rpm\xc2\xa0\n$ yum downgrade file docker-ce-18.09.9-3.el7.x86_64.rpm\xc2\xa0\n
Run Code Online (Sandbox Code Playgroud)\n\n最后,docker引擎命令运行成功,但是现在有两个不同的版本,API是相同的。
\n\n$ docker engine update --version …
Run Code Online (Sandbox Code Playgroud) 文档
提供了安装特定版本的语法docker-ce
:
$ sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
在类似的行上,下面dockerfile
使用上面的语法:
FROM jenkins/jenkins:lts
ENV DEBIAN_FRONTEND=noninteractive
USER root
ARG DOCKER_GID=497
# Create Docker Group with GID
# Set default value of 497 if DOCKER_GID set to blank string by Docker compose
RUN groupadd -g ${DOCKER_GID:-497} docker
# Install base packages for docker, docker-compose & ansible
# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AA8E81B4331F7F50 && \
RUN apt-get update -y && \
apt-get -y install bc \
gawk \
libffi-dev …
Run Code Online (Sandbox Code Playgroud) 我希望你们一切都好!
这是我关于堆栈溢出的第一个问题,所以如果我遗漏了什么,请告诉我,我很乐意更新我的问题。
因此,总结一下我的问题,我尝试按照Docker-Engine Installation 中的官方步骤在 Ubuntu 18.04 VM 上安装 Docker-ce,并且在运行命令“sudo apt-get”时出现错误“Hash Sum Mismatch”安装 docker-ce docker-ce-cli containerd.io”。
我经历了几次官方步骤,到目前为止我已经尝试了以下事情:
1)以下命令,后面是官方安装步骤
apt-get clean
rm -rf /var/lib/apt/lists/*
apt-get clean
apt-get update
apt-get upgrade
Run Code Online (Sandbox Code Playgroud)
2)创建一个包含以下几行的文件,放置在“/etc/apt/apt.conf.d/99fixbadproxy”,接下来是官方安装步骤
Acquire::http::Pipeline-Depth 0;
Acquire::http::No-Cache true;
Acquire::BrokenProxy true;
Run Code Online (Sandbox Code Playgroud)
3)使用以下命令安装其他版本的docker-ce
sudo apt-get install docker-ce 5:19.03.8~3-0~ubuntu-bionic
sudo apt-get install docker-ce 5:19.03.6~3-0~ubuntu-bionic
sudo apt-get install docker-ce 5:18.09.9~3-0~ubuntu-bionic
Run Code Online (Sandbox Code Playgroud)
4)我尝试通过在以下命令的“稳定”一词后添加“nightly”或“test”或两者来安装不同的存储库(我认为它们被称为存储库)
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
Run Code Online (Sandbox Code Playgroud)
我认为差不多就是这样。我确实尝试过其他事情,但不幸的是我不记得它们了,因为我已经在这个问题上工作了很长时间了。
不过,我没有尝试全新安装的 Ubuntu 18.04。
如果我的问题中遗漏了任何内容,请告诉我!
大家保重!
我正在尝试使用以下命令从命令行获取变量:
sudo docker-compose -f docker-compose-fooname.yml run -e BLABLA=hello someservicename
Run Code Online (Sandbox Code Playgroud)
我的文件如下所示:
version: '3'
services:
someservicename:
environment:
- BLABLA
image: docker.websitename.com/image-name:latest
volumes:
- /var/www/image-name
command: ["npm", "run", BLABLA]
Run Code Online (Sandbox Code Playgroud)
所有这一切都是为了我可以运行由我在命令行中使用的 BLABLA 定义的脚本,我已经尝试使用官方文档。
尝试了几种选择,包括:
sudo COMPOSE_OPTIONS="-e BLABLA=hello" docker-compose -f docker-compose-fooname.yml run someservicename
Run Code Online (Sandbox Code Playgroud)
更新:我不得不提的是,事实上,我总是得到:
WARNING: The FAKE_SERVER_MODE variable is not set. Defaulting to a blank string.
Run Code Online (Sandbox Code Playgroud)
即使我只是运行以下命令(无论是删除,停止..):
sudo docker-compose -f docker-compose-fooname.yml stop someservicename
Run Code Online (Sandbox Code Playgroud)
郑重声明:我首先拉取映像,我从不构建它,但我的 CI/CD 工具会构建它(gitlab),这会影响它吗?
我正在使用 docker-compose 版本 1.18、docker 版本 18.06.1-ce、Ubuntu 16.04
在Ubuntu Server 16.04上启动docker-ce(18.06.1-ce,构建e68fc7a)之后,将创建以下内容:
$ ifconfig
docker0 Link encap:Ethernet HWaddr 02:42:fe:36:81:72
inet addr:172.17.0.1 Bcast:0.0.0.0 Mask:255.255.0.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Run Code Online (Sandbox Code Playgroud)
不幸的是,我的PC在此网络上。这意味着,一旦docker启动,我将失去与服务器的ssh连接。
几个论坛都说要添加以下内容/etc/docker/daemon.json
:
{
"bip": "192.168.1.1/24"
}
Run Code Online (Sandbox Code Playgroud)
一种可行的解决方案正在运行:
sudo ip addr add dev docker0 192.168.1.1/24
sudo ip addr del dev docker0 172.17.0.1/16
Run Code Online (Sandbox Code Playgroud)
资料来源:forums.docker.com
尽管这是一个可能的解决方案,但我必须在docker服务启动后执行此操作。我无法执行某些操作,因为与此同时我失去了连接。
添加-bip
到ExecStart
行后,尝试启动docker给出(journalctl -xe): …
尝试在 Debian 10 (Buster) 上安装 Docker 时出现错误
The following packages have unmet dependencies:
docker-ce : Depends: containerd.io (>= 1.4.1) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Run Code Online (Sandbox Code Playgroud) docker-ce ×10
docker ×9
ubuntu-18.04 ×3
apt-get ×1
centos ×1
containerd ×1
debian ×1
dockerfile ×1
filesystems ×1
go ×1
installation ×1
overlay ×1
rpm ×1
ubuntu ×1