相关疑难解决方法(0)

使用Unix工具解析JSON

我正在尝试解析从curl请求返回的JSON,如下所示:

curl 'http://twitter.com/users/username.json' |
    sed -e 's/[{}]/''/g' | 
    awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}'
Run Code Online (Sandbox Code Playgroud)

以上将JSON拆分为字段,例如:

% ...
"geo_enabled":false
"friends_count":245
"profile_text_color":"000000"
"status":"in_reply_to_screen_name":null
"source":"web"
"truncated":false
"text":"My status"
"favorited":false
% ...
Run Code Online (Sandbox Code Playgroud)

如何打印特定字段(用-v k=text?表示)?

bash parsing json

794
推荐指数
25
解决办法
87万
查看次数

壳进入群集容器

我无法连接到在群上运行的容器.似乎以下不起作用:

docker exec -it <container_ID> bash
Run Code Online (Sandbox Code Playgroud)

这是一些输出:

>$ docker service ls
ID            NAME          REPLICAS  IMAGE                              COMMAND
4rliefwe74o5  login         1/1       login-arm64:1.0


>$ docker service ps login
ID                         NAME     IMAGE                       NODE               DESIRED STATE  CURRENT STATE          ERROR
2jk3s2xs7ce62piunbkiptypz  login.1  login-arm64:1.0  odroid64-cluster4  Running        Running 5 minutes ago
Run Code Online (Sandbox Code Playgroud)

然后我会跑:

$ docker exec -it 2jk3s2xs7ce62piunbkiptypz bash
Run Code Online (Sandbox Code Playgroud)

要么

$ docker exec -it login.1 bash
Run Code Online (Sandbox Code Playgroud)

并看到以下错误

来自守护程序的错误响应:没有这样的容器:2jk3s2xs7ce62piunbkiptypz

来自守护程序的错误响应:没有这样的容器:login.1

docker docker-swarm

9
推荐指数
2
解决办法
7231
查看次数

如何在已部署的docker堆栈上停靠exec -ti CONTAINER_NAME/bin/bash?

我在AWS上使用swarm部署了一个docker堆栈:

docker stack deploy --with-registry-auth -c docker-stack.yml pipeline
Run Code Online (Sandbox Code Playgroud)

我想在docker-stack.yml中定义的一个容器中获得一个交互式bash会话,但是docker exec -ti CONTAINER_NAME /bin/bash我尝试过的各种调用都失败了.

派生要传递给的容器名称的正确方法是什么:

docker exec -it CONTAINER_NAME /bin/bash
Run Code Online (Sandbox Code Playgroud)

鉴于:

docker service ps pipeline_django
Run Code Online (Sandbox Code Playgroud)

返回有效的服务信息并:

docker stack ps pipeline
Run Code Online (Sandbox Code Playgroud)

返回有效的堆栈信息.

传递给命令时,从这些命令派生container_name的任何记录方法都不起作用docker exec -it.他们都失败了:

来自守护程序的错误响应:没有这样的容器

我试过这里列出的东西:

在docker swarm服务中执行命令

aws-cloudformation docker docker-compose docker-swarm

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

从swarm manager运行docker exec

我有两个工作节点:worker1和worker2以及一个swarm管理器.我只在工作节点中运行所有服务.我需要从管理器docker exec运行来访问工作节点中创建的一些容器,但我一直认为服务无法识别.我知道我可以在任何工作节点中运行docker exec并且它工作正常但我不想在服务运行的节点上找到,然后ssh到指定的节点运行docker exec命令.有没有办法在swarm中这样做?

docker docker-swarm

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

Docker 部署 - 一台机器 - 无停机时间

我只有一个小型 Web 项目要通过 Docker 运行,并且只有一台机器无法使用虚拟化,而且我也并不真正需要虚拟化。我想知道如何使用 Docker 将应用程序部署到 VPS 而不会造成任何停机。

目前,我只是使用存储库并使用 docker-compose 创建 docker 容器(包括通过特定 .yaml 文件进行生产的一些配置)。

我想最好是使用 Swarm,但我认为这是不可能的,因为我只能使用一台机器。

docker docker-compose docker-swarm

3
推荐指数
2
解决办法
3465
查看次数

码头工人群。无法对 docker 堆栈的容器运行 exec,因为“docker 容器列表”找不到该容器

第1节

我正在尝试在堆栈或服务中的容器之一上执行“exec”。我已按照此处提供的答案在 docker swarm 服务中执行命令以及此处的官方 Docker 文档https://docs.docker.com/engine/swarm/secrets/但似乎是“docker 容器列表”及其变体(“docker ps”)似乎没有找到“docker服务列表”中列出的任何容器。

请参阅https://docs.docker.com/engine/swarm/secrets/中的以下示例,该示例旨在在服务的容器上使用“exec”。

1)

printf "This is a secret" | docker secret create my_secret_data -
Run Code Online (Sandbox Code Playgroud)
docker service  create --name redis --secret my_secret_data redis:alpine
Run Code Online (Sandbox Code Playgroud)
docker service ps redis
Run Code Online (Sandbox Code Playgroud)

产量ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS 75olesuh9n4h redis.1 redis:alpine virt-05 Running Running 16 minutes ago

  1. 下面的两个命令返回“redis”的零记录
docker ps --filter name=redis -q
docker container list

Run Code Online (Sandbox Code Playgroud)

下面的两个命令不会返回“redis”的记录,因此下面的命令肯定不起作用。

docker container exec $(docker ps --filter name=redis -q) ls -l /run/secrets …
Run Code Online (Sandbox Code Playgroud)

docker docker-swarm

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