小编moh*_*08p的帖子

如何删除旧的和未使用的Docker镜像

长时间运行Docker时,系统中有很多图像.如何一次性删除所有未使用的Docker镜像以释放存储空间?

另外,我还想删除几个月前拉出的图片,这些都是正确的TAG.

所以,我不是要求仅删除未标记的图像.我正在寻找一种方法来删除一般未使用的图像,其中包括未标记的图像和其他图像,例如几个月前正确的图像TAG.

docker docker-image

697
推荐指数
13
解决办法
33万
查看次数

docker run <IMAGE> <MULTIPLE COMMANDS>

我正在尝试运行这样的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字符的任何提示.

docker docker-image

218
推荐指数
6
解决办法
13万
查看次数

如何从docker容器访问主机端口

我有一个运行jenkins的码头集装箱.作为构建过程的一部分,我需要访问在主机上本地运行的Web服务器.有没有办法将主机Web服务器(可以配置为在端口上运行)暴露给jenkins容器?

编辑:我在Linux机器上本地运行docker.

更新:

除了下面的@larsks答案,要从主机获取主机IP的IP地址,我还会执行以下操作:

ip addr show docker0 | grep -Po 'inet \K[\d.]+'
Run Code Online (Sandbox Code Playgroud)

docker docker-container

217
推荐指数
13
解决办法
18万
查看次数

Kubernetes中的ClusterIP,NodePort和LoadBalancer服务类型有什么区别?

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或者我是否完全忽略了这一点?

containers kubernetes kubernetes-service

174
推荐指数
9
解决办法
7万
查看次数

如何在docker compose中将主机目录挂载为卷

我有一个开发环境,我是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)

docker docker-compose docker-volume

94
推荐指数
6
解决办法
12万
查看次数

安装Jenkins后不能su给用户jenkins

我已经安装了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上.

unix linux jenkins

86
推荐指数
2
解决办法
8万
查看次数

如何为docker容器分配更多内存

正如标题所示,我正在尝试为我的容器分配更多内存.我正在使用来自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 docker-container

79
推荐指数
4
解决办法
9万
查看次数

Docker - Container未运行

我完全是码头工人的新手.我尝试启动一个像以下一样的退出容器,

  1. 我列出了所有可用的容器docker ps -a.它列出了以下内容, docker list所有图片
  2. 我输入以下命令来启动处于退出阶段的容器并进入该图像的终端.

    docker start 79b3fa70b51d docker exec -it 79b3fa70b51d \bin\sh

  3. 它抛出以下错误.

    FATA[0000] Error response from daemon: Container 79b3fa70b51d is not running

但是当我开始使用容器时docker start 79b3fa70b51d.它将容器ID作为输出抛出,如果一切正常,则是正常的.我不确定导致此错误的原因.任何关于这个的原因和建议的想法对我来说都会有很大帮助.提前致谢.

docker docker-container

63
推荐指数
10
解决办法
10万
查看次数

杀死容器时,在ubuntu 16.04错误的docker

我不能杀死或停止任何码头集装箱.我允许非特权用户运行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)

docker docker-container

30
推荐指数
4
解决办法
2万
查看次数

多个app节点如何在kubernetes中公开jmx?

  1. kubernetes我可以公开服务service.这可以.
  2. 假设我有1个Web实例和10个java服务器实例.
  3. 我有一个Windows网关,我用它通过安装在它上面的jconsole访问这10个java服务器实例.
  4. 显然我没有通过kubernetes服务公开所有应用程序jmx端口.

我有什么选择?我应该如何允许这个外部的kubernetes集群windows网关访问那些10个服务器的jmx端口?有什么做法吗?

docker kubernetes kubernetes-service

29
推荐指数
1
解决办法
9831
查看次数