标签: docker

nginxconf 文件中的空格重要吗?

我有一个nginx conf文件,由于使用环境变量,我有一个 shell 脚本 echo,我将该文件称为nginx.conf.template,然后我将回显结果放入实际的 中nginx.conf,请参阅下面的 shell 脚本:

#!/bin/sh
function subst() { eval echo -E "$2"; }
mapfile -c 1 -C subst < nginx.conf.template > nginx.conf
Run Code Online (Sandbox Code Playgroud)

我遇到的唯一问题是它删除了所有缩进的空格,我想这会导致问题,但我运行该nginx服务器的 docker 容器似乎没问题。我没有缩进有什么关系吗?如果确实重要, echo 可以保留所述空格吗?

nginx shell docker

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

docker stats 输出与 top 输出有何关系?

我有一个进程在 Linux 上的 Docker 容器中运行,内存限制为 2GByte。(容器以 开头docker run --memory=2g。)

以下是top它运行一段时间后的情况。

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 9016 root      20   0 7342132 4.652g 4.224g S 100.0  7.4  18828:28 blah
Run Code Online (Sandbox Code Playgroud)

这是输出docker stats:

CONTAINER           CPU %               MEM USAGE/LIMIT     MEM %               NET I/O
d7032e5928b6        100.02%             2.076 GB/2.147 GB   96.68%              345 MB/199.1 MB
Run Code Online (Sandbox Code Playgroud)

然后,重新启动后top:

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 5653 root      20   0 2787800 …
Run Code Online (Sandbox Code Playgroud)

top memory-usage docker

6
推荐指数
1
解决办法
3442
查看次数

docker restart 是使用最新的镜像还是创建容器时使用的镜像?

如果我使用标签/标签创建容器

docker run --name some_container -d me/my_image

更新图像

docker pull me/my_image

并重新启动容器

docker restart some_container

新容器使用哪个版本?

Indocker inspect .Image给出特定图像的 id,.Config.Image给出标签。

docker

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

让 SSH 服务器转发每个用户的连接

有没有办法强制 OpenSSH(或创建某种代理)仅通过他(或她)提供的用户名将一个用户转发到一台机器,将另一个用户转发到另一台机器?

我遇到以下问题:我要在 Docker 容器中运行 GitLab,同时在主机上运行 SSH 服务器。GitLab 监听 SSH 连接,但它只对“git”用户通过 SSH 密钥区分客户端感兴趣。所以我想创建的设置是以下之一:

  1. 主机上端口 22 上的代理,当提供的用户是“git”时,将整个会话转发到 Docker Gitlab,或者当用户名是时转发到主机 SSH(可能会监听另一个端口,重要的是客户端不知道这一点)不同的。
  2. 主机 SSH 在内部处理除“git”之外的每个用户,并在用户名是“git”时将会话转发到 Docker 容器。

需要明确的是:Docker 容器运行一个网桥,并且可以通过不同于主机 IP 的唯一 IP 地址从主机访问它。

StackOverflow 上也提出了类似的问题(/sf/ask/595381181/),但没有答案可以解决该问题 - 最有帮助的是建议自定义 shell,但我发现没有办法创建类似的东西。

networking linux ssh git docker

6
推荐指数
1
解决办法
2190
查看次数

是否可以编辑docker检查返回的数据?

docker inspect返回有关 docker 映像或容器(或另一个对象)的各种有趣信息。

这些信息存储在哪里?可以编辑吗?

docker

6
推荐指数
2
解决办法
1万
查看次数

如何在 docker swarm 模式服务调用上设置 Linux 功能

我正在研究在 swarm (1.12.x) 下运行的保险库的概念。

单个容器将启动: docker run -d --cap-add IPC_LOCK -p 8200:8200 -p 8215:8125 --name vault --volume /vagrant/vault:/vagrant/vault vault server -config=/path/to/vault.hcl

但是当我想在 swarm 作为服务运行它时,似乎无法指定IPC_LOCK功能,以便在这种情况下锁定 Vault 服务的加密交换。

使用docker service create命令启动群模式服务时如何设置 --cap-add 标志?

docker docker-swarm

6
推荐指数
2
解决办法
1万
查看次数

有没有办法刷新docker的嵌入式dns缓存?

我工作的环境有时 DNS 服务器会崩溃并告诉您它无法解析主机(例如,查找“github.com”失败)。它是暂时的,通常恢复得相当快。然而,有时当这种情况发生时,docker 守护进程在用户定义的桥接网络上提供的嵌入式 DNS 服务似乎会缓存错误的结果。一旦被缓存,我们最终需要完全删除网络并重建它(即,docker-compose down然后docker-compose up)。我在运行 docker-engine 17.05.0-ce、build 89658be 的 debian jessie 盒子上看到了这一点。

有没有其他人遇到过这种情况,并且可能找到了比拆除和重建网络更轻量级的解决方案?

docker debian-jessie docker-compose

6
推荐指数
0
解决办法
6010
查看次数

EC2 实例冻结

在一个特定的情况下,我遇到了突然冻结的情况。
以下是实例的一些详细信息:
类型:t2.micro
Region/av。区域:us-west-2b
操作系统:amzn-ami-hvm-2018.03.0.20180811-x86_64-gp2 (ami-a0cfeed8)

我的这个 Ec2 实例自动冻结。
我在实例中安装了 docker。
我是这个领域的新手。
不知道从哪里可以获取系统或服务器日志来解释为什么我的 ec2 实例持续冻结,以便我可以跟踪问题。
提前致谢。

amazon-ec2 amazon-web-services unexpected-shutdown docker docker-compose

6
推荐指数
1
解决办法
2万
查看次数

ECS 中的 Docker 卷权限

我正在将现有应用程序从在裸 EC2 实例上运行迁移到使用 ECS 的容器化设置。我有两种情况需要在容器之间共享数据。一个是存储一些静态和媒体文件的 EFS 共享,另一个是日志目录,以便我可以使用 sidecar 容器中的 Cloudwatch Logs 代理将日志推送到 Cloudwatch。

网络服务器需要能够将数据写入这两个位置,但到目前为止我还无法实现。日志目录是本地卷,归root:root. 我按照这些说明设置的 EFS 共享归1000:xfs(无用户名)所有。在这两种情况下,我的网络用户 ( www-data) 都不能写入这些位置。

如何告诉 ECS 在具有给定所有者和/或组的容器内安装卷?

amazon-web-services docker amazon-ecs

6
推荐指数
1
解决办法
2860
查看次数

为什么当文件存在时 docker-compose 会发出“没有这样的文件或目录”?

我正在测试我的服务器的裸机恢复,它基本上用我的服务启动了一组 docker 容器。我从备份中恢复/etc/docker,在那里我保留了所有配置和持久卷。

然后我尝试启动其中一个容器:

root@srv-backup:/etc/docker# docker-compose --verbose -f /etc/docker/docker-compose.d/20-registry.yaml up
compose.config.config.find: Using configuration files: /etc/docker/docker-compose.d/20-registry.yaml
ERROR: compose.cli.main.main: .IOError: [Errno 2] No such file or directory: '/etc/docker/docker-compose.d/20-registry.yaml'
Run Code Online (Sandbox Code Playgroud)

然而,该文件在那里:

root@srv-backup:/# ll /etc/docker/docker-compose.d/20-registry.yaml
-rwxrwxr-x+ 1 root root 842 Jan 24 15:19 /etc/docker/docker-compose.d/20-registry.yaml*

root@srv-backup:/# cat /etc/docker/docker-compose.d/20-registry.yaml
services:
  registry:
    container_name: registry
    image: registry
    labels:
      - traefik.http.routers.registry.rule=Host(`registry.example.com`)
      - traefik.http.routers.registry.entryPoints=https
      - traefik.http.routers.registry.tls=true
      - traefik.http.routers.registry.tls.certresolver=le
      - traefik.http.middlewares.lan.ipwhitelist.sourcerange=192.168.10.0/24, 192.168.20.0/24
      - traefik.http.routers.registry.middlewares=lan
      - traefik.enable=true
    restart: unless-stopped
    volumes:
      - /etc/docker/container-data/registry:/var/lib/registry
version: '3'

root@srv-backup:/# file /etc/docker/container-data/registry
/etc/docker/container-data/registry: directory
Run Code Online (Sandbox Code Playgroud)

我用相对路径和完整路径尝试了各种咒语 - …

docker docker-compose

6
推荐指数
1
解决办法
2万
查看次数