长时间运行Docker时,系统中有很多图像.如何一次性删除所有未使用的Docker镜像以释放存储空间?
另外,我还想删除几个月前拉出的图片,这些都是正确的TAG.
所以,我不是要求仅删除未标记的图像.我正在寻找一种方法来删除一般未使用的图像,其中包括未标记的图像和其他图像,例如几个月前正确的图像TAG.
我正在尝试运行这样的MULTIPLE命令.
docker run image cd /path/to/somewhere && python a.py
Run Code Online (Sandbox Code Playgroud)
但这给了我"没有这样的文件或目录"错误,因为它被解释为......
"docker run image cd /path/to/somewhere" && "python a.py"
Run Code Online (Sandbox Code Playgroud)
似乎需要一些像""或()这样的ESCAPE字符.
所以我也试过了
docker run image "cd /path/to/somewhere && python a.py"
docker run image (cd /path/to/somewhere && python a.py)
Run Code Online (Sandbox Code Playgroud)
但这些都行不通.
我搜索了Docker Run Reference但没有找到有关ESCAPE字符的任何提示.
我有一个运行jenkins的码头集装箱.作为构建过程的一部分,我需要访问在主机上本地运行的Web服务器.有没有办法将主机Web服务器(可以配置为在端口上运行)暴露给jenkins容器?
编辑:我在Linux机器上本地运行docker.
更新:
除了下面的@larsks答案,要从主机获取主机IP的IP地址,我还会执行以下操作:
ip addr show docker0 | grep -Po 'inet \K[\d.]+'
Run Code Online (Sandbox Code Playgroud) 1 - 我正在阅读文档,我对措辞有点困惑.它说:
ClusterIP:在集群内部IP上公开服务.选择此值使服务只能从群集中访问.这是默认的ServiceType
NodePort:在静态端口(NodePort)上的每个Node的IP上公开服务.将自动创建NodePort服务将路由到的ClusterIP服务.您可以通过请求从群集外部联系NodePort服务
<NodeIP>:<NodePort>.LoadBalancer:使用云提供商的负载均衡器在外部公开服务.将自动创建外部负载均衡器将路由到的NodePort和ClusterIP服务.
NodePort服务类型是否仍然使用ClusterIP但只是在一个不同的端口,该端口对外部客户端开放?所以在这种情况下是<NodeIP>:<NodePort>一样的<ClusterIP>:<NodePort>吗?
或者NodeIP实际上是运行时找到的IP kubectl get nodes而不是用于ClusterIP服务类型的虚拟IP?
2 - 同样在以下链接的图表中:
http://kubernetes.io/images/docs/services-iptables-overview.svg
有什么特别的原因Client是里面的Node?我认为Cluster在ClusterIP服务类型的情况下它需要在a里面.
如果为NodePort绘制了相同的图表,那么将客户端完全绘制在两者之外是否有效Node,Cluster或者我是否完全忽略了这一点?
我有一个开发环境,我是dockerizing,我希望能够重新生成我的更改,而无需重建docker镜像.我正在使用docker compose,因为redis是我应用程序的依赖项之一,我喜欢能够链接redis容器
我有两个容器定义docker-compose.yml:
node:
build: ./node
links:
- redis
ports:
- "8080"
env_file:
- node-app.env
redis:
image: redis
ports:
- "6379"
Run Code Online (Sandbox Code Playgroud)
我已经在我的node应用程序的dockerfile中添加了一个卷,但是如何在卷中安装主机的目录,以便我对代码的所有实时编辑都反映在容器中?
这是我当前的Dockerfile:
# Set the base image to Ubuntu
FROM node:boron
# File Author / Maintainer
MAINTAINER Amin Shah Gilani <amin@gilani.me>
# Install nodemon
RUN npm install -g nodemon
# Add a /app volume
VOLUME ["/app"]
# TODO: link the current . to /app
# Define working directory
WORKDIR /app
# Run npm install
RUN …Run Code Online (Sandbox Code Playgroud) 我已经安装了jenkins,我正试图进入一个shell作为Jenkins来添加一个ssh密钥.我似乎无法进入jenkins用户:
[root@pacmandev /]# sudo su jenkins
[root@pacmandev /]# whoami
root
[root@pacmandev /]# echo $USER
root
[root@pacmandev /]#
Run Code Online (Sandbox Code Playgroud)
jenkins用户存在于我的/ etc/passwd文件中.Runnin su jenkins要求输入密码,但拒绝我的普通密码.sudo su jenkins好像什么也没做; 同样的sudo su - jenkins.我在CentOS上.
正如标题所示,我正在尝试为我的容器分配更多内存.我正在使用来自docker hub的图像,名为"aallam/tomcat-mysql",以防相关.
当我正常启动而没有任何特殊标志时,内存限制为2GB(即使我没有设置内存是无限制的)
这是我的码头统计数据
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
ba57d6c9e9d2 0.22% 145.6 MiB / 1.952 GiB 7.29% 508 B / 508 B 0 B / 6.91 MB 68
Run Code Online (Sandbox Code Playgroud)
我尝试明确地设置内存,但结果相同
docker run -d --memory=10g --memory-swap=-1 -e MYSQL_PASSWORD=password -p 3307:3306 -p 8081:8080 aallam/tomcat-mysql
Run Code Online (Sandbox Code Playgroud)
我读过,也许虚拟机正在限制它.但是为什么docker统计数据显示容器大小限制为2GB?
我完全是码头工人的新手.我尝试启动一个像以下一样的退出容器,
docker ps -a.它列出了以下内容,

我输入以下命令来启动处于退出阶段的容器并进入该图像的终端.
docker start 79b3fa70b51d
docker exec -it 79b3fa70b51d \bin\sh
它抛出以下错误.
FATA[0000] Error response from daemon: Container 79b3fa70b51d is not running
但是当我开始使用容器时docker start 79b3fa70b51d.它将容器ID作为输出抛出,如果一切正常,则是正常的.我不确定导致此错误的原因.任何关于这个的原因和建议的想法对我来说都会有很大帮助.提前致谢.
我不能杀死或停止任何码头集装箱.我允许非特权用户运行Docker命令.并且docker run hello-world工作正常.但我不能阻止任何其他容器.
我得到了以下:
$ docker stop 59e3b815d1dc
Error response from daemon: cannot stop container: 59e3b815d1dc:
Cannot kill container 59e3b815d1dcf2d8c8bcd3dd641c3c033b83ac68ea2f0257a32a76468af7374c:
unknown error after kill: docker-runc did not terminate sucessfully:
container_linux.go:393: signaling init process caused "permission denied"
: unknown
Run Code Online (Sandbox Code Playgroud)
与sudo相同的错误.同时,所有容器都成功运行,但要停止它们只能完全重启系统.
Docker撰写示例:#使用postgres/example用户/密码凭证版本:'3.1'
services:
db:
image: postgres
restart: always
environment:
POSTGRES_PASSWORD: example
adminer:
image: adminer
restart: always
ports:
- 8080:8080
Run Code Online (Sandbox Code Playgroud)
Docker信息:
$ docker info
Containers: 7
Running: 2
Paused: 0
Stopped: 5
Images: 10
Server Version: 17.12.1-ce
Storage Driver: overlay2
Backing …Run Code Online (Sandbox Code Playgroud) kubernetes我可以公开服务service.这可以.我有什么选择?我应该如何允许这个外部的kubernetes集群windows网关访问那些10个服务器的jmx端口?有什么做法吗?