簡體   English   中英

docker-compose 沒有這樣的命令:轉換錯誤

[英]docker-compose No such command: convert error

我正在嘗試遵循有關 AWS ECS 集成的本教程,其中提到了應該生成 AWS CloudFormation 模板的 Docker 命令docker compose convert

但是,當我運行此命令時,它似乎不存在。

$ docker-compose convert
No such command: convert
#...

$ docker compose convert
docker: 'compose' is not a docker command.
See 'docker --help'

$ docker context create ecs myecscontext
"docker context create" requires exactly 1 argument.
See 'docker context create --help'.

Usage:  docker context create [OPTIONS] CONTEXT

Create a context

$ docker --version
Docker version 19.03.13, build 4484c46

$ docker-compose --version
docker-compose version 1.25.5, build unknown

$ docker version
Client:
 Version:           19.03.13
 API version:       1.40
 Go version:        go1.13.8
 Git commit:        4484c46
 Built:             Thu Oct 15 18:34:11 2020
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          19.03.11
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.12
  Git commit:       77e06fd
  Built:            Mon Jun  8 20:24:59 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.2.13
  GitCommit:        7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc:
  Version:          1.0.0-rc10
  GitCommit:        
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

$ docker info
Client:
 Debug Mode: false

Server:
 Containers: 12
  Running: 3
  Paused: 0
  Stopped: 9
 Images: 149
 Server Version: 19.03.11
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 7ad184331fa3e55e52b890ea95e65ba581ae3429
 runc version: 
 init version: fec3683
 Security Options:
  apparmor
  seccomp
   Profile: default
 Kernel Version: 5.8.0-29-generic
 Operating System: Ubuntu Core 16
 OSType: linux
 Architecture: x86_64
 CPUs: 16
 Total Memory: 7.202GiB
 Name: HongLee
 ID: GZ5R:KQDD:JHOJ:KCUF:73AE:N3NY:MWXS:ABQ2:2EVY:4ABJ:H375:J64V
 Docker Root Dir: /var/snap/docker/common/var-lib-docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

有任何想法嗎?

要獲得 ECS 集成,您需要使用 ECS docker 上下文。 首先,在/etc/docker/daemon.json啟用實驗標志

// /etc/docker/daemon.json
{
    "experimental": true
}

然后創建上下文:

docker context create ecs myecscontext
docker context use myecscontext
$ docker context ls
NAME                TYPE                DESCRIPTION                               DOCKER ENDPOINT               KUBERNETES ENDPOINT                                       ORCHESTRATOR
default             moby                Current DOCKER_HOST based configuration   unix:///var/run/docker.sock   [redacted] (default)   swarm
myecscontext *      ecs                                                                                                                                                   

現在運行convert

$ docker compose convert
WARN[0000] services.build: unsupported attribute        
AWSTemplateFormatVersion: 2010-09-09
Resources:
  AdminwebService:
    DependsOn:
    - AdminwebTCP80Listener
    Properties:
      Cluster:
...

你在 Ubuntu 上運行。 安裝的/usr/bin/docker docker(即使是最新的 docker-ce 20.10.6)也不會啟用 docker docker compose子命令。 通過對碼頭工人默認桌面Windows或Mac啟用。

請參閱https://github.com/docker/compose-cli上的Linux安裝說明進行下載和配置,以便docker compose工作。

有一個curl|bash Ubuntu的腳本或只是下載最新的版本,把那個docker可執行到PATH目錄之前, /usr/bin/並確保原docker可作為com.docker.cliln -s /usr/bin/docker ~/bin/com.docker.cli

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM