如何静音或修复 snap docker-compose CryptographyDeprecationWarning:不再支持 Python 3.6

Nag*_*gev 4 docker snap

我的 Ubuntu 服务器运行安装了snap的 docker 。最近我注意到运行docker-compose会出现Python相关的警告,例如:

$ docker-compose version
/snap/docker/2285/lib/python3.6/site-packages/paramiko/transport.py:33: CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team. Therefore, support for it is deprecated in cryptography and will be removed in a future release.
  from cryptography.hazmat.backends import default_backend
docker-compose version 1.29.2, build unknown
docker-py version: 5.0.3
CPython version: 3.6.9
OpenSSL version: OpenSSL 1.1.1  11 Sep 2018
Run Code Online (Sandbox Code Playgroud)

我的Python版本较高:

$ python3 --version
Python 3.10.6
Run Code Online (Sandbox Code Playgroud)

和:

$ docker version
Client:
 Version:           20.10.17
 API version:       1.41
 Go version:        go1.16.15
 Git commit:        100c70180f
 Built:             Thu Sep 22 06:21:41 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server:
 Engine:
  Version:          20.10.17
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.15
  Git commit:       a89b842
  Built:            Thu Sep 22 06:22:13 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.6.6
  GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc:
  Version:          1.1.2
  GitCommit:
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
Run Code Online (Sandbox Code Playgroud)

我在GitHub 问题上看到了有关使用pip重新安装的评论docker-compose,但我认为这不会有帮助,因为我没有使用以下命令安装它pip

$ pip3 list
Command 'pip3' not found, but can be installed with:
sudo apt install python3-pip

$ pip list
Command 'pip' not found, but can be installed with:
sudo apt install python3-pip
Run Code Online (Sandbox Code Playgroud)

据我所知,该docker-compose插件包含在 docker snap 中。现在我只是闭嘴:

alias docker-compose="docker-compose 2>/dev/null"

但这可能会隐藏其他错误,我更喜欢实际修复。将不胜感激任何想法。

Art*_*ild 8

该命令docker-compose是旧的、已弃用的 Docker Compose 版本。

相反,尝试运行docker compose version. 这将为您提供 Docker Compose 当前版本 (2.X) 的版本。

您可以创建一个别名来将旧语法映射到新版本,如下所示:

alias docker-compose='docker compose'
Run Code Online (Sandbox Code Playgroud)

也许包含旧版本是为了兼容性,但我建议仅使用新的 2.X 版本。