我发现对于大文件(例如 PostgreSQL 数据库的数据目录)使用 btrfs CoW 功能并不是一个好主意。
由于我使用 docker 作为数据库,我现在问自己,是否应该对整个/var/lib/docker目录禁用 CoW。但我不确定,因为docker的分层文件系统是否利用了这个功能?
或者是否可以仅针对某些特定卷禁用 CoW?
我正在尝试为两个不同的注册表配置 Docker。(一个 ECR 和 docker.io)我需要ecr-login使用 simple 配置 ECR 1 和 docker.io auth,但我无法同时配置这些。它给出以下错误:
保存凭据时出错:存储凭据时出错 - 错误:退出状态 1,输出:
not implemented
这是我的 ~/.docker/config.json
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "BASE64-STRING"
}
},
"credsStore": "ecr-login"
}
Run Code Online (Sandbox Code Playgroud)
为什么 Docker 在已经可用的credsStore情况下还要尝试使用它?auth
我有一个已退出的 docker 容器Exited (1) 8 seconds ago。我想以交互模式(bash 模式)输入它来检查出了什么问题,我该怎么做?
我知道我可以启动一个图像(docker run -it IMAGE_NAME /bin/bash)直接进入交互模式。
如何重新运行已退出的容器并进入交互模式?docker start -a CONTAINERID将导致它再次退出 1。因为有一个默认启动的自动命令,在Dockerfileas中指定CMD java ...
I am trying to manually use the docker:19.03.5-dind image as shown by the "How to use this image" section.
First I am running the daemon
$ docker run --privileged -d --rm --name=docker-daemon \
--network=test docker:19.03.5-dind
e1f8544d30df5bc010d67e38b38be0f47306b29ab0fdeb32861c5716582c9917
Run Code Online (Sandbox Code Playgroud)I see that it is up and listens on port 2376
$ docker logs docker-daemon
...
time="2019-11-28T11:31:40.266976728Z" level=info msg="Daemon has completed initialization"
time="2019-11-28T11:31:40.550083421Z" level=info msg="API listen on [::]:2376"
time="2019-11-28T11:31:40.550169911Z" level=info msg="API listen on /var/run/docker.sock"
Run Code Online (Sandbox Code Playgroud)Next I bring up the docker client:
$ docker run …Run Code Online (Sandbox Code Playgroud)我们在AWS的ECS平台上运行我们的服务,并将日志发送到AWS CloudWatch。
我们有两种类型的日志,任何容器都可以生成其中一种类型:
审核日志是法规强制要求的,除了更严格的访问控制要求外,它们的保留时间比应用程序日志更长,因此将两者放在同一个日志流中并不是真正的选择。因此,我们使用两个日志流,其中一个位于具有严格访问策略的 CloudWatch 日志组中。
目前,我们正在将日志写入单独的磁盘文件,日志代理将日志条目从磁盘文件发送到 CloudWatch。然而,我们希望切换到“Docker 方式”的日志记录,即将所有日志写入 STDOUT 或 STDERR,并让日志驱动程序处理其余的事情。这听起来特别有吸引力,因为日志磁盘(几乎)是我们正在使用的唯一磁盘安装,摆脱它们确实非常好。(除了日志磁盘之外,我们的容器是严格只读的。)
问题是,我们无法找到一种明智的方法来保持日志流分离。显而易见的事情是以某种方式标记日志消息并稍后将它们分开,但仍然存在一个问题:
希望我们遗漏了一些明显的东西,在这种情况下,我们将非常感谢您的帮助。
如果没有,是否有任何解决方法(甚至是适当的解决方案)来让这种事情发挥作用?
我正在尝试使用 linux 盒子(运行 ubuntu 18.04)和 nginx、gunincorn、letsencrypt 和 docker 来提供 python-django web 应用程序。在学习了许多在线教程之后,我按照本教程http://pawamoy.github.io/2018/02/01/docker-compose-django-postgres-nginx 成功通过端口 80 通过 http 提供了应用程序服务。 html。
然而,我现在真的很难通过端口 443 通过 https 进行部署。我想也许我不理解基本的 docker 概念。我运行时遇到的错误sudo docker-compose up如下。
NGINX 错误:
nginx_1 | nginx: [emerg] open() "/etc/letsencrypt/options-ssl-nginx.conf" failed (2: No such file or directory) in /etc/nginx/conf.d/local_ssl.conf:28
我相信这是因为我没有链接 docker-compose.yml 文件中的 options-ssl-nginx.conf 文件,也许是通过卷?我不知道这是否正确。我的 docker-compose.yml 文件和 nginx.conf 文件的相关部分如下:
docker-compose.yml:
version: '3'
services:
# database containers
database1:
...
# web container
djangoapp:
...
# reverse proxy container (nginx)
nginx:
image: …Run Code Online (Sandbox Code Playgroud) 我有一个这样的项目目录:
|-var/www
|-docker-compose.yml
|-app
|--uploads
|---photos
|-Dockerfile
Run Code Online (Sandbox Code Playgroud)
这是我的docker-compose.yml文件:
myapp:
build:
context: myfolder
dockerfile: Dockerfile
container_name: flask
image: api/v1:01
restart: unless-stopped
environment:
APP_ENV: "prod"
APP_DEBUG: "False"
APP_PORT: 5000
volumes:
- appdata:/var/www
Run Code Online (Sandbox Code Playgroud)
我想要的:
我想更改app/uploads/photos此文件夹的权限。777这是一个上传文件夹,因此用户可以上传到此文件夹。
我Dockerfile现在的样子是这样的:
FROM python:3.6.8-alpine3.9
ENV GROUP_ID=1000 \
USER_ID=1000
WORKDIR /var/www/
ADD . /var/www/
RUN apk add --no-cache build-base libffi-dev openssl-dev ncurses-dev
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
RUN addgroup -g $GROUP_ID www
RUN adduser -D -u $USER_ID …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个基于 docker 的多容器设置,其中包含多个域的反向代理以提供服务,其中网站、数据库和基于 nginx 的反向代理在容器中运行,但我不知道我在做什么丢失(我是 nginx 新手)。
\n\n细节:
\n\nmy_example_domain_1.com,my_example_domain_2.net我的例子: (basedir multi-container:)
nginx_revproxy/default.conf:
\n\nserver {\n listen 80;\n server_name localhost;\n\n location / {\n root /usr/share/nginx/html;\n index index.html index.htm;\n }\n\n error_page 500 502 503 504 /50x.html;\n location = /50x.html {\n root /usr/share/nginx/html;\n }\n}\n\nserver {\n listen 80;\n server_name my_example_domain_1.com;\n location …Run Code Online (Sandbox Code Playgroud) 我们正在尝试设置一个包含 25 个工作节点和 1 个主节点的集群。在此之前,我们需要选择硬件,尤其是主节点。
如何估算我们需要的硬件资源?主节点的硬件要求与集群的大小有关吗?我们可以遵循官方硬件推荐或资源规则之类的东西吗?
我正在安装 Ubuntu 20.04 的全新服务器,
我通过运行启动了一个示例 nginx,docker run --rm -p 80:80 nginx
端口 80 似乎在机器上打开,curl但我无法打开 nginx 默认页面:
$ nmap localhost
Starting Nmap 7.80 ( https://nmap.org ) at 2020-11-15 13:06 GMT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000077s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 998 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 …Run Code Online (Sandbox Code Playgroud) docker ×10
nginx ×3
amazon-ecr ×1
amazon-ecs ×1
btrfs ×1
containers ×1
deployment ×1
django ×1
iptables ×1
kubernetes ×1
lets-encrypt ×1
linux ×1
networking ×1
permissions ×1
routing ×1