Kami memiliki server Docker yang sedikit lebih lama berjalan di RHEL 6.6. Itu tidak didukung dengan baik oleh tim operasi kami saat ini, jadi kami tidak dapat memutakhirkannya dengan mudah. Sekarang ini menjalankan Docker 1.3.2 dari repo EPEL. Jika saya ssh di dalamnya melakukan semua yang saya butuhkan untuk proof-of-concept yang mudah-mudahan akan membantu saya mendorong manajemen untuk meningkatkan dukungan infrastruktur untuk Docker di jalan.
Saya mengaturnya untuk mendengarkan pada TCP / TLS, dan saya dapat terhubung dengannya, tetapi ia menolak untuk menjalankan perintah yang diberikan oleh klien buruh pelabuhan lokal saya.
$ docker version
Client version: 1.4.1
Client API version: 1.16
Go version (client): go1.4
Git commit (client): 5bc2ff8
OS/Arch (client): darwin/amd64
FATA[0000] Error response from daemon: client and server don't have same version (client : 1.16, server: 1.15)
Saya tahu koneksi itu sendiri berfungsi karena fig
berfungsi:
$ cat > fig.yml
test:
image: busybox
$ fig run --rm test sh
/ # hostname -f
084f75fb59d4
Apakah ada cara saya dapat memberitahu klien buruh pelabuhan yang lebih baru untuk menggunakan versi API buruh pelabuhan yang lebih lama sampai saya dapat mengakses ke host buruh pelabuhan yang lebih baru?
Jawaban:
Sejak Docker 1.10.0, ada opsi untuk mengganti Versi API yang digunakan untuk komunikasi klien Docker dengan mesin Docker.
Hanya dengan menggunakan variabel lingkungan DOCKER_API_VERSION.
Ex.:
Referensi: https://docs.docker.com/engine/reference/commandline/cli/#environment-variables
EDIT
Sejak Docker 1.13, CLI memiliki kompatibilitas mundur yang ditingkatkan. Menurut https://blog.docker.com/2017/01/whats-new-in-docker-1-13 :
sumber
Jika Anda tidak dapat dengan mudah meningkatkan server, Anda harus dapat dengan mudah menurunkan versi klien Anda. Docker adalah open source di GitHub . Versi 1.3.3 adalah yang terakhir dengan API klien 1,15. Berikut ini tautan langsung ke tag.
Cukup buat klon lokal dari repo, buat build, buat biner, lalu tukar biner yang dihasilkan:
sumber