- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 postgres:10 ( https://hub.docker.com/_/postgres/ ) 图像作为数据库。部署在docker swarm集群中。
运行数据库副本后,我在数据库日志中得到了数据库系统已关闭
。
2018-05-11 10:26:53.073 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432,
2018-05-11 10:26:53.073 UTC [1] LOG: listening on IPv6 address "::", port 5432,
2018-05-11 10:26:53.077 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432",
2018-05-11 10:26:53.092 UTC [20] LOG: database system was shut down at 2018-05-11 10:26:20 UTC,
2018-05-11 10:26:53.100 UTC [1] LOG: database system is ready to accept connections,
The files belonging to this database system will be owned by user "postgres".,
This user must also own the server process.,
,
The database cluster will be initialized with locale "en_US.utf8".,
The default database encoding has accordingly been set to "UTF8".,
The default text search configuration will be set to "english".,
,
Data page checksums are disabled.,
,
fixing permissions on existing directory /var/lib/postgresql/data ... ok,
creating subdirectories ... ok,
selecting default max_connections ... 100,
selecting default shared_buffers ... 128MB,
selecting dynamic shared memory implementation ... posix,
creating configuration files ... ok,
running bootstrap script ... ok,
performing post-bootstrap initialization ... ok,
,
WARNING: enabling "trust" authentication for local connections,
You can change this by editing pg_hba.conf or using the option -A, or,
--auth-local and --auth-host, the next time you run initdb.,
syncing data to disk ... ok,
,
Success. You can now start the database server using:,
,
pg_ctl -D /var/lib/postgresql/data -l logfile start,
,
waiting for server to start....2018-05-11 09:39:21.129 UTC [37] LOG: listening on IPv4 address "127.0.0.1", port 5432,
2018-05-11 09:39:21.130 UTC [37] LOG: could not bind IPv6 address "::1": Cannot assign requested address,
2018-05-11 09:39:21.130 UTC [37] HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry.,
2018-05-11 09:39:21.133 UTC [37] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432",
2018-05-11 09:39:21.147 UTC [38] LOG: database system was shut down at 2018-05-11 09:39:20 UTC,
2018-05-11 09:39:21.152 UTC [37] LOG: database system is ready to accept connections,
done,
server started,
CREATE DATABASE,
,
CREATE ROLE,
,
,
/usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*,
,
2018-05-11 09:39:21.595 UTC [37] LOG: received fast shutdown request,
waiting for server to shut down....2018-05-11 09:39:21.596 UTC [37] LOG: aborting any active transactions,
2018-05-11 09:39:21.598 UTC [37] LOG: worker process: logical replication launcher (PID 44) exited with exit code 1,
2018-05-11 09:39:21.599 UTC [39] LOG: shutting down,
2018-05-11 09:39:21.613 UTC [37] LOG: database system is shut down,
done,
server stopped,
,
PostgreSQL init process complete; ready for start up.,
,
2018-05-11 09:39:21.706 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432,
2018-05-11 09:39:21.706 UTC [1] LOG: listening on IPv6 address "::", port 5432,
2018-05-11 09:39:21.709 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432",
2018-05-11 09:39:21.724 UTC [64] LOG: database system was shut down at 2018-05-11 09:39:21 UTC,
2018-05-11 09:39:21.729 UTC [1] LOG: database system is ready to accept connections,
2018-05-11 10:26:20.444 UTC [1] LOG: received smart shutdown request,
2018-05-11 10:26:20.449 UTC [1] LOG: worker process: logical replication launcher (PID 70) exited with exit code 1,
2018-05-11 10:26:20.449 UTC [65] LOG: shutting down,
2018-05-11 10:26:20.460 UTC [1] LOG: database system is shut down,
图片:
FROM postgres:10
COPY healthcheck /usr/local/bin/
RUN chmod +x /usr/local/bin/healthcheck
HEALTHCHECK --interval=30s --timeout=30s --retries=3 \
CMD healthcheck
来自 docker-compose 的片段:
db_jackrabbit:
build: ./images/pgsql_jackrabbit
container_name: db_jackrabbit
environment:
- POSTGRES_DB=${JACK_POSTGRES_DB}
- POSTGRES_USER=${JACK_POSTGRES_USER}
- POSTGRES_PASSWORD=${JACK_POSTGRES_PASSWORD}
volumes:
- pgsql_jackrabbit_local:/var/lib/postgresql/data
ports:
- ${PORT_DB_JACKRABBIT}:5432
健康检查:
#!/bin/bash
set -eo pipefail
host="$(hostname -i || echo '127.0.0.1')"
user="${POSTGRES_USER:-postgres}"
db="${POSTGRES_DB:-$POSTGRES_USER}"
export PGPASSWORD="${POSTGRES_PASSWORD:-}"
args=(
# force postgres to not use the local unix socket (test "external" connectibility)
--host "$host"
--username "$user"
--dbname "$db"
--quiet --no-align --tuples-only
)
if select="$(echo 'SELECT 1' | psql "${args[@]}")" && [ "$select" = '1' ]; then
exit 0
fi
exit 1
但是DB还活着。它会定期关闭并再次接受连接(这是什么问题?提前致谢!
最佳答案
好的,所以我解决了我的问题。 This issue helped me .
似乎 Postgres 初始化过程一旦完成就停止了初始化过程,这是另一个跟进并接受连接的过程。
因此我有:
postgres:
deploy:
restart_policy:
condition: on-failure
window: 15m
并且显然 docker 收到了进程结束状态代码,因此它停止了而没有进入下一个进程,因此从不接受连接。
我的解释可能不正确,但至少如果您遇到问题,请尝试删除 restart_policy
键以查看是否可以解决问题。
我还没有尝试恢复 healthcheck
,因为它也可能有不良副作用。
关于postgresql - Postgres :10 in docker swarm cluster. 数据库系统被关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50291544/
当我将新节点加入现有节点时,docker swarm 抛出错误“swarm already part of swarm” 我在我的本地机器上运行 docker swarm 并尝试初始化 swarm 并
我经常遇到问题,因为我在具有多个节点的 docker swarm 上部署的服务无法启动,并且没有生成可以使用 docker service logs {serviceName} 查看的日志。 服务无法
我在同一个子网中有 4 个虚拟机,它们是 docker-swarm 的一部分。现在我想连接另一个位于不同国家(不同子网)的节点(虚拟机)。我是一个 IP 菜鸟,我很难在 docker 中设置一个能够处
我想将堆栈部署到 Docker 群,我希望每个节点都运行给定的服务。 我查看了 deploy.placement 配置,我发现的最接近的选项是放置首选项 spread=node.label.abc ,
初始化集群模式: root@ip-172-31-44-207:/home/ubuntu# docker swarm init --advertise-addr 172.31.44.207 Swarm
这个命令的初始化群有什么区别: docker swarm init --advertise-addr docker -H swarm join --token 和这个: docker run s
我正在考虑构建一个 Docker Swarm 集群。为了让事情既简单又相对容错,我想简单地运行 3 个节点作为管理器。 不使用任何专用工作节点时有什么权衡?有什么我应该注意的可能不明显的吗? 我找到了
我最感兴趣的是我从docker node ls得到的信息. Docker 将加入的节点的信息存储在哪里? 最佳答案 docker 把加入的节点的信息存储在哪里? 资料来自docker node ls可
我想知道是否有人可以区分这两者。它们都有相似的命名。 最佳答案 Docker Swarm是一个单独的产品,您可以使用它来集群多个 Docker 主机。在 Docker 版本 1.12 之前,它是集群主
我有一个带有两个节点的 Swarm,我正在运行 cadvisor 作为全局服务。我得到指标,grafana/Promethues 可以抓取它们。但是我的数字是错误的。当我使用 docker 命令行工具
我正在尝试连接到 docker 事件总线以监听 swarm 上发生的各种事件,例如节点离开和加入集群、创建的服务等。 问题。 是否有可能在群体级别获得此类信息? 如果是这样,是否dockerpy库可用
我正在使用最新的 mac 版 docker (17.09.0-ce),当我运行 docker-machine create --help 时它说... --swarm-master Configur
我创建了一个 docker swarm 集群,其中包含 4 个节点 2 是 swarm manager(swarm 支持多个管理器)我知道如果当前管理器节点关闭,然后第二个管理器扮演成为集群管理器的角
为了测试我们的托管构建,我正在尝试建立一个与主机和外部世界隔离的 docker 网络。 我有以下 docker-compose.yml (灵感来自 this forum post ): version
在创建 docker swarm 集群时,我遇到了以下两个命令: docker run swarm create docker 群初始化 两者都用于初始化 Docker swarm 集群。任何人都可以
问题陈述:我需要通过 JMX 连接到 docker swarm 服务中的特定容器。服务未在任何端口上公开,因此我无法通过直接点击公开端口上的 docker 基板来访问 JMX。 另外,如果服务被暴露,
目前我可以看到Spring Cloud Data Flow有这些服务器:Local、YARN、Cloud Foundry、Mesos和Kubernetes;是否有支持 Swarm 的计划? 最佳答案
我看到与 described here 相同的问题和 here .我已经尝试了在这两种情况下有效的所有方法,但都无济于事——我仍然看到相同的行为。有人可以提供我可以尝试的替代方案吗? 我的设置: 我正
在一个 swarm 中拥有多个 docker 机器(一个管理器和许多节点)与在一个 swarm 中拥有多个 docker 服务副本之间到底有什么区别? 最佳答案 好吧,由于没有人回答这个问题,我继续在
当在多台机器的 Docker Swarm 集群中运行时,Traefik 不会创建前端或后端。 我按照以下教程在我的 MacBook(操作系统版本:10.14.2 (18C54))上创建了一个 Dock
我是一名优秀的程序员,十分优秀!