我正在尝试解析从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?表示)?
我无法连接到在群上运行的容器.似乎以下不起作用:
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
我在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.他们都失败了:
来自守护程序的错误响应:没有这样的容器
我试过这里列出的东西:
我有两个工作节点:worker1和worker2以及一个swarm管理器.我只在工作节点中运行所有服务.我需要从管理器docker exec运行来访问工作节点中创建的一些容器,但我一直认为服务无法识别.我知道我可以在任何工作节点中运行docker exec并且它工作正常但我不想在服务运行的节点上找到,然后ssh到指定的节点运行docker exec命令.有没有办法在swarm中这样做?
我只有一个小型 Web 项目要通过 Docker 运行,并且只有一台机器无法使用虚拟化,而且我也并不真正需要虚拟化。我想知道如何使用 Docker 将应用程序部署到 VPS 而不会造成任何停机。
目前,我只是使用存储库并使用 docker-compose 创建 docker 容器(包括通过特定 .yaml 文件进行生产的一些配置)。
我想最好是使用 Swarm,但我认为这是不可能的,因为我只能使用一台机器。
第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
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)