我最近开始使用Docker并且从未意识到我应该使用docker-compose down而不是ctrl-c或者docker-compose stop去除我的实验.我现在在本地有大量不需要的泊坞窗图像.
是否有一个标志我可以运行删除所有本地docker镜像和容器?
像docker rmi --all --force--all标志不存在,但我正在寻找具有类似想法的东西.
在docker image prune的docker 文档中,可以使用-a标志
删除所有未使用的图像,而不仅仅是悬空图像
然后
删除所有悬空图像.如果指定了-a,还将删除未被任何容器引用的所有图像.
有人可以向我解释悬挂图像是什么,悬空和未使用图像之间有什么区别?
我正在尝试使用Docker Compose设置Docker Machine.
场景1(没有Docker Machine)
如果我在docker-compose up -d没有Docker Machine的情况下运行,它会创建我想要的3个链接容器(nginx + mongodb + nodejs).
场景2(使用Docker Machine)
然后我使用Docker Machine创建一个VM,并告诉Docker与该机器通信eval $(docker-machine env streambacker-dev).
此时,如果我ssh到我的docker机器并运行df -h,我得到:

如果我然后运行docker-compose up -d,我在下载最后一个容器时得到"设备上没有空间"错误.
之后"tmpfs"似乎确实有点满:

检查--virtualbox-disk-size选项显示它默认为20000 MB,我认为这两张图片上我们可以看到"/ dev/sda1".那么为什么容器会填满"tmpfs"n,究竟什么是"tmpfs"?是临时下载目录吗?如何为容器创建更多空间?
谢谢!
有关信息,我使用的是Docker Machine 0.4.0-rc2和Docker Compose 1.3.2.
root@server:~# docker images -a
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
<none> <none> 5e2dfc857e73 5 days ago 261.6 MB
<none> <none> d053e988f23d 5 days ago 261.6 MB
<none> <none> 1d5d4a2d89eb 5 days ago 261.6 MB
<none> <none> ea0d189fdb19 5 days ago 100.5 MB
<none> <none> 26c6175962b3 5 days ago 100.5 MB
<none> <none> 73d5cec4a0b3 5 days ago 100.5 MB
<none> <none> e19590e1bac1 5 days ago 100.5 MB
Run Code Online (Sandbox Code Playgroud)
我尝试过以下方法:
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
Run Code Online (Sandbox Code Playgroud)
以下内容: …
我正在学习docker而我正在使用v1.11.0我正在尝试安装hadoop但devmapper却在抱怨可用磁盘空间?
devmapper: Thin Pool has 82984 free data blocks which is less than minimum required 163840 free data blocks. Create more free space in thin pool or use dm.min_free_space option to change behavior
Run Code Online (Sandbox Code Playgroud)
我删除了所有图片,但问题仍然存在:
[root@localhost hadoop_docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
debian latest 47af6ca8a14a 3 weeks ago 125 MB
[root@localhost hadoop_docker]#
Run Code Online (Sandbox Code Playgroud)
这是我的磁盘配置:
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 8G 0 disk
??sda1 8:1 0 500M 0 part /boot
??sda2 8:2 …Run Code Online (Sandbox Code Playgroud) 我无法删除死容器,它在重新启动Docker服务后再次出现.
docker ps -a
CONTAINER ID STATUS
11667ef16239 Dead
Run Code Online (Sandbox Code Playgroud)
然后
docker rm -f 11667ef16239
Run Code Online (Sandbox Code Playgroud)
然后,当我运行docker ps -a时,没有Docker容器显示.
docker ps -a
CONTAINER ID STATUS
Run Code Online (Sandbox Code Playgroud)
但是,当我重新启动docker服务时:
service docker restart
Run Code Online (Sandbox Code Playgroud)
并再次运行docker ps -a:
docker ps -a
CONTAINER ID STATUS
11667ef16239 Dead
Run Code Online (Sandbox Code Playgroud) 我想知道如何更改以下行为.假设我的终端有28条线路.然后我使用以下命令:
$ tput lines # my terminal
28
$ docker run --rm -it ubuntu:16.04 tput lines # docker container
24 ## WHY??
$ docker run --rm -it ubuntu:16.04 bash # docker container inside command
root@810effa2777c:/# tput lines
28
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,即使所有结果都应该是28,当我调用容器时,docker run --rm -it ubuntu:16.04 tput lines尽管我的终端大小,它总是给我24.这不仅仅是ubuntu容器,我也尝试过使用debian(docker run --rm -it debian tput lines)并且我得到了相同的结果24.
这样做的目的是使用mdp演示工具,它考虑了终端中的行.当我的实现失败时,我尝试了其他人的docker实现,但我遇到了同样的错误.
这是我在图像中的错误:
有谁知道它可能是什么以及如何解决这个问题?
我做了一些谷歌搜索,没有运气找到一个我跑,docker run -i some_image而不是 docker run -it some_image.
如果我运行docker run -i --name sample some_image bash,容器在前台运行,但我无法从我所在的shell中与它进行交互.我甚至无法用CTRL + C来阻止它.但是,我可以弹出另一个shell并运行docker exec -it sample bash并获取对容器的访问权限.
如果我跑docker run -i -d --name sample some_image bash,容器立即退出.我可以重新启动它docker start sample然后它保持运行,所以我可以docker exec -it sample bash再次运行并与之交互.
但是,在所有这些情况下,我最终都会使用-it与容器进行交互.在哪个世界我不需要-t旗帜?
干杯
我正在尝试构建一个 docker 映像,但它抛出一个错误,我似乎不明白为什么。
它卡RUN apt-get -y update在以下错误消息中:
4.436 E: Release file for http://security.debian.org/debian-security/dists/buster/updates/InRelease is not valid yet (invalid for another 2d 16h 26min 22s). Updates for this repository will not be applied.
4.436 E: Release file for http://deb.debian.org/debian/dists/buster-updates/InRelease is not valid yet (invalid for another 3d 10h 28min 24s). Updates for this repository will not be applied.
executor failed running [/bin/sh -c apt-get -y update]: exit code: 100
Run Code Online (Sandbox Code Playgroud)
这是我的泊坞窗文件:
FROM python:3.7
# Adding trusting keys to apt for …Run Code Online (Sandbox Code Playgroud) 我在我的Mac上尝试使用1.12的docker swarm.我启动了3个VirtualBox虚拟机,创建了一个3的swarm集群.
docker@redis1:~$ docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
2h1m8equ5w5beetbq3go56ebl redis3 Ready Active
8xubu8g7pzjvo34qdtqxeqjlj redis2 Ready Active Reachable
cbi0lyekxmp0o09j5hx48u7vm * redis1 Ready Active Leader
Run Code Online (Sandbox Code Playgroud)
但是,当我创建服务时,我看到没有错误,但副本始终显示0/1:
docker@redis1:~$ docker service create --replicas 1 --name hello ubuntu:latest /bin/bash
76kvrcvnz6kdhsmzmug6jgnjv
docker@redis1:~$ docker service ls
ID NAME REPLICAS IMAGE COMMAND
76kvrcvnz6kd hello 0/1 ubuntu:latest /bin/bash
docker@redis1:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Run Code Online (Sandbox Code Playgroud)
可能是什么问题呢?我在哪里寻找原木?谢谢!