小编Tho*_*odi的帖子

如何排序或订购结果docker ps --format?

我在使用时没有找到任何方式来订购我的结果 docker ps

在我的情况下,我想通过.Ports订购

docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}"
Run Code Online (Sandbox Code Playgroud)

我如何订购结果?

docker

13
推荐指数
3
解决办法
5654
查看次数

运行MySQL一个预填充的docker容器作为随机(非root)linux用户?

我正在尝试创建一个符合OpenShift标准的预填充MySQL容器映像.

使用指定用户运行容器(遗憾的是)不是我们的选择.

这是一个问题,因为OpenShift只是创建一些没有用户名的随机UID,因此在启动MySQL服务之前在运行时使用脚本设置用户名不是一种选择.

有没有办法让MySQL与docker容器中的任何随机UID一起运行?

编辑:这背后的问题的想法是能够启动MySQL的集装箱像这样 Dockerfilerandomusermysql:example

FROM mysql:5.7.22

#IMPORTANT: MySQL Container runs init in alphanumerical order!
COPY src/some.sql /docker-entrypoint-initdb.d/

ENV MYSQL_ROOT_PASSWORD='somepw'

RUN mkdir -p /var/lib/mysql2 && \
    chown -R mysql:mysql /var/lib/mysql2 && \
    chmod -R 777 /var/lib/mysql2 && \
    sed -i 's|/var/lib/mysql|/var/lib/mysql2|g' /etc/mysql/mysql.conf.d/mysqld.cnf && \
    sed -i 's|exec "$@"||g' /entrypoint.sh && \
    /entrypoint.sh mysqld && \
    chmod -R 777 /var/lib/mysql2/ && \
    chown -R mysql:mysql /var/lib/mysql2 && \
    find /var/lib/mysql2/ -name "*.cnf" -exec chmod 775 {} \; && …
Run Code Online (Sandbox Code Playgroud)

mysql openshift docker

9
推荐指数
1
解决办法
1031
查看次数

如何查看docker build“RUN命令”标准输出?(用于 Windows 的泊坞窗)

在过去,我可以简单地做这样的事情:

Dockerfile

FROM ubuntu
RUN echo "test"
Run Code Online (Sandbox Code Playgroud)

这将输出test到我的外壳。我用它作为调试我的构建的一种方式。

在 docker for windows 的最新稳定版本中,构建输出看起来完全不同,并且没有显示任何命令的任何标准输出。

如何在构建过程中查看任何命令的输出?

对于上面的Dockerfile示例,当前输出如下所示:

[+] Building 4.7s (6/6) FINISHED
 => [internal] load build definition from Dockerfile                                                                       0.0s 
 => => transferring dockerfile: 65B                                                                                        0.0s 
 => [internal] load .dockerignore                                                                                          0.0s 
 => => transferring context: 2B                                                                                            0.0s 
 => [internal] load metadata for docker.io/library/ubuntu:latest                                                           2.0s 
 => [1/2] FROM docker.io/library/ubuntu@sha256:c95a8e48bf88e9849f3e0f723d9f49fa12c5a00cfc6e60d2bc99d87555295e4c            2.3s 
 => => resolve docker.io/library/ubuntu@sha256:c95a8e48bf88e9849f3e0f723d9f49fa12c5a00cfc6e60d2bc99d87555295e4c            0.0s 
 => => sha256:f643c72bc25212974c16f3348b3a898b1ec1eb13ec1539e10a103e6e217eb2f1 3.32kB / 3.32kB                             0.0s 
 => => sha256:da7391352a9bb76b292a568c066aa4c3cbae8d494e6a3c68e3c596d34f7c75f8 28.56MB / 28.56MB …
Run Code Online (Sandbox Code Playgroud)

docker docker-build docker-for-windows

8
推荐指数
1
解决办法
2230
查看次数

Apache2 PHP docker 容器,如何将错误作为 stderr 并将信息作为 stdout 记录到容器日志中?

我目前正在使用官方php:7.4-apache映像,我想将一些信息和错误记录到 docker 日志中。

我意识到 PHP 不直接记录,而是记录到 Apache2 服务器,因为这是解释 PHP 的服务器。

尽管如此,我还是尝试了使用官方 docker 文档中的信息的直接方法:

<?php

error_log('testlog', 3, '/proc/self/fd/1');
error_log('testerror', 3, '/proc/self/fd/2');
Run Code Online (Sandbox Code Playgroud)

这给了我一个“无法打开流,文件不存在”的警告。

我还注意到,简单地调用error_log('test')会创建以下日志,而不会写入 stderr:

[Tue Nov 10 11:39:46.005650 2020] [php7:notice] [pid 17] [client 172.25.0.1:56576] test
Run Code Online (Sandbox Code Playgroud)

我试图弄清楚是否有任何特殊的方法可以向 Apache2 stdout/stderr 发送消息,但我找不到任何有用的东西。

有没有办法实现这一点,或者这只是在容器中记录 PHP 的错误方法?

!!编辑:!!

到目前为止,我已经设法发现原始 Dockerfile 中的日志定义在文件中处理为/dev/stderr& /dev/stdout

我还发现了以下可能性:

error_log('test', 3, 'php://stdout');
error_log('testerr', 3, 'php://stderr');
Run Code Online (Sandbox Code Playgroud)

但这会产生以下输出:

> test 
> 172.25.0.1 - - [18/Nov/2020:13:19:48 +0000] "GET / HTTP/1.1" 200 229 "-" "Mozilla/5.0 (Windows …
Run Code Online (Sandbox Code Playgroud)

php logging apache2 docker

7
推荐指数
1
解决办法
2352
查看次数

PHP 7 与 8 带有浮点时间戳的 DateTime 行为

这个例子: https: //onlinephp.io/c/3af93

<?php

new DateTime("@0.1");
Run Code Online (Sandbox Code Playgroud)

抛出一个错误,PHP 7PHP 8会成功解析时间戳。

我试图理解为什么它的行为与以前的 PHP 版本不同。查看 PHP 7 与 8 变更日志后,我找不到任何对此行为的直接引用。

这是一个未记录的更改还是与任何不同的内容相关?

php php-7.4 php-8

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

使用运行 docker 容器的用户无法访问的 php 文件构建容器?

我需要知道是否有可能创建一个运行我的 php 应用程序的容器,其中一些 php 文件无法从 Docker 外部访问。

Docker Secret 不能应用于这种情况。

有什么我可能忽略的吗?

编辑:显然这是不可能的,我仍然需要详细解释为什么这是不可能的。

Edit2:我们需要使运行容器的用户无法访问 docker 中的文件(因此无法读取代码)。打开端口 80 通过 apache 执行/运行脚本不是问题。

php containers docker dockerfile

5
推荐指数
1
解决办法
1550
查看次数

Microsoft Graph:如何在客户端凭据流中获取带有证书的访问令牌?(而不是使用 client_secret)

目标

我想使用证书而不是 Microsoft Graph 的客户端密钥来验证我的守护程序应用程序,并希望了解成功验证所需的确切请求。

使用以下资源:

您的应用程序的 Azure AD 配置是否存在错误?

所有 Azure AD 配置均已事先使用client-secret. 证书公钥也已提前上传: 在此输入图像描述

请求与问题

我设法创建了这个请求(租户 ID、客户端 ID、证书只是虚拟的)

价值观:

grant_type: : urn:ietf:params:oauth:client-assertion-type:jwt-bearer
client_assertion_type: logon_cert
client_id: my-client-id-from-azure
scope: https://graph.microsoft.com/.default
client_assertionJWT 包含

  • 标头:(x5t 包含上传证书中的 base64 编码证书 sha1 指纹,请参见上图)

    {
      "typ": "JWT",
      "x5t": "QUY4RjBERERGMDBBOURGRUQ0MzkzODRGQTYzMjhFQ0FBRDNBOEUzNw",
      "alg": "RS256"
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 有效负载:

    {
      "iss": "my-client-id-from-azure",
      "sub": "my-client-id-from-azure",
      "scope": "https://graph.microsoft.com/.default",
      "aud": "https://login.microsoftonline.com/my-tenant-id/oauth2/v2.0/token",
      "iat": 1625591612,
      "nbf": 1625591612,
      "exp": 1625595212,
      "jti": "some-dynamically-generated-uuid"
    }
    
    Run Code Online (Sandbox Code Playgroud)
要求:
POST https://login.microsoftonline.com/my-tenant-id/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded; …
Run Code Online (Sandbox Code Playgroud)

authentication oauth-2.0 microsoft-graph-api

5
推荐指数
1
解决办法
6990
查看次数

Keycloak:如何在不重定向的情况下登录到另一个Keycloak实例的领域?

我们有两个 Keycloak 实例:

  • Keycloak-A:公开可用
  • Keycloak-B:可通过 VPN 使用

两个实例可以直接相互通信,没有任何限制。

是否可以使用公共 Keycloak-A 中的登录表单作为 Keycloak-B 中的用户登录?
通过将 Keycloak-B 添加为 Keycloak-A 上的 IDP,登录请求将被重定向到 Keycloak-B。

无法将领域从 Keycloak-B 导出到 Keycloak-A。

是否可以使用 Keycloak-B 用户登录而无需在 Keycloak-A 上重定向?

keycloak

5
推荐指数
1
解决办法
486
查看次数

为了测试目的,将neo4j查询持续多久?

我们想创建一个非常慢的查询来在我们的应用程序中测试它.有没有办法让Neo4j查询持续一段特定的秒数?

neo4j cypher

3
推荐指数
1
解决办法
114
查看次数

如何在 Postman JSON 正文中添加注释(用于集合级别预请求脚本)

我想在 JSON 正文中使用注释来进行快速引用,如下所示:

{
    /**
    * some param info
    *   param: [
    *     1 = value so
    *     2 = value that
    *   ]
    */
    "param": [
        1
    ],
    /* some param2 info */
    "param2": "value",
    // pls use this
    "param3": [
        "values"
        //"home"
    ]
}
Run Code Online (Sandbox Code Playgroud)

在请求发送到服务器之前应该过滤掉评论。

postman postman-pre-request-script

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