我有一个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 可以保留所述空格吗?
我有一个进程在 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) 如果我使用标签/标签创建容器
docker run --name some_container -d me/my_image
更新图像
docker pull me/my_image
并重新启动容器
docker restart some_container
新容器使用哪个版本?
Indocker inspect .Image给出特定图像的 id,.Config.Image给出标签。
有没有办法强制 OpenSSH(或创建某种代理)仅通过他(或她)提供的用户名将一个用户转发到一台机器,将另一个用户转发到另一台机器?
我遇到以下问题:我要在 Docker 容器中运行 GitLab,同时在主机上运行 SSH 服务器。GitLab 监听 SSH 连接,但它只对“git”用户通过 SSH 密钥区分客户端感兴趣。所以我想创建的设置是以下之一:
需要明确的是:Docker 容器运行一个网桥,并且可以通过不同于主机 IP 的唯一 IP 地址从主机访问它。
StackOverflow 上也提出了类似的问题(/sf/ask/595381181/),但没有答案可以解决该问题 - 最有帮助的是建议自定义 shell,但我发现没有办法创建类似的东西。
docker inspect返回有关 docker 映像或容器(或另一个对象)的各种有趣信息。
这些信息存储在哪里?可以编辑吗?
我正在研究在 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 标志?
我工作的环境有时 DNS 服务器会崩溃并告诉您它无法解析主机(例如,查找“github.com”失败)。它是暂时的,通常恢复得相当快。然而,有时当这种情况发生时,docker 守护进程在用户定义的桥接网络上提供的嵌入式 DNS 服务似乎会缓存错误的结果。一旦被缓存,我们最终需要完全删除网络并重建它(即,docker-compose down然后docker-compose up)。我在运行 docker-engine 17.05.0-ce、build 89658be 的 debian jessie 盒子上看到了这一点。
有没有其他人遇到过这种情况,并且可能找到了比拆除和重建网络更轻量级的解决方案?
在一个特定的情况下,我遇到了突然冻结的情况。
以下是实例的一些详细信息:
类型: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
我正在将现有应用程序从在裸 EC2 实例上运行迁移到使用 ECS 的容器化设置。我有两种情况需要在容器之间共享数据。一个是存储一些静态和媒体文件的 EFS 共享,另一个是日志目录,以便我可以使用 sidecar 容器中的 Cloudwatch Logs 代理将日志推送到 Cloudwatch。
网络服务器需要能够将数据写入这两个位置,但到目前为止我还无法实现。日志目录是本地卷,归root:root. 我按照这些说明设置的 EFS 共享归1000:xfs(无用户名)所有。在这两种情况下,我的网络用户 ( www-data) 都不能写入这些位置。
如何告诉 ECS 在具有给定所有者和/或组的容器内安装卷?
我正在测试我的服务器的裸机恢复,它基本上用我的服务启动了一组 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 ×10
amazon-ec2 ×1
amazon-ecs ×1
docker-swarm ×1
git ×1
linux ×1
memory-usage ×1
networking ×1
nginx ×1
shell ×1
ssh ×1
top ×1