How to install docker-engine 1.13 on debian Jessie - docker

Following the official documentation from Docker I get only docker-engine 1.12
# apt-cache policy docker-engine
docker-engine:
Installed: 1.12.4-0~debian-jessie
Candidate: 1.12.5-0~debian-jessie
Version table:
1.12.5-0~debian-jessie 0
500 https://apt.dockerproject.org/repo/ debian-jessie/main amd64 Packages
*** 1.12.4-0~debian-jessie 0
500 https://apt.dockerproject.org/repo/ debian-jessie/main amd64 Packages
100 /var/lib/dpkg/status
How can I install/upgrade to 1.13 ?
I need docker prune system https://stackoverflow.com/a/39860665/3313834

Docker has not released 1.13 yet. See the release notes for details on new releases. To get on the RC of 1.13, switch to the testing branch.

You can install docker 1.13.0-rc4 by running:
curl -fsSL https://test.docker.com/ | sh

Related

Downgrading Docker on the host to match container's older GLIBC: doable / good idea?

After migrating our build server's OS to the latest Ubuntu LTS (ubuntu:jammy) I quickly run into GLIBC incompatibility issue with the latest Debian (debian:bullseye) used in the latest official pre-built Jenkins containers (jenkins/jenkins:jdk17), a problem already described here. This is expected, because that would require forward compatibility to work: container-installed dependencies (GLIBC 2.31) are older than the host-installed software (docker built under and expecting GLIBC 2.35).
Since there are no regularly maintained Jenkins Docker images using GLIBC version 2.35 compatible with the latest Ubuntu LTS (they would have to be using Debian Bookworm as a base or even Jammy itself) is it a) possible and b) a good idea (stability-, and security-wise) to downgrade docker on the host to match Debian container's older GLIBC version (2.31)? That would save me from reinstalling the entire host OS to the previous Ubuntu LTS and from maintaining custom Jenkins containers based on Debian Bookworm for its GLIBC 2.35 (possibly for a long time).
Answering the first part of the question: not doable.
First, after the downgrade, docker would run into the same C API compatibility issues on the host itself (the docker would be only usable inside Jenkins containers). Second, there are no installation candidates for such a deep downgrade. In other words, supported docker versions gap between the two systems (host vs. container) is too wide (respectively 20.10.13 vs. 20.10.5).
More info
# host:
$ sudo apt update && sudo apt-cache madison docker-ce
[..]
docker-ce | 5:20.10.19~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.18~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.17~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.16~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.15~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.14~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
docker-ce | 5:20.10.13~3-0~ubuntu-jammy | https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages
# container:
$ docker exec -it jenkins_jenkins bash -c "apt-cache madison docker.io"
docker.io | 20.10.5+dfsg1-1+deb11u2 | http://deb.debian.org/debian bullseye/main amd64 Packages
I finally solved the problem by doing the exact opposite:
upgrading the container system to make its libc version match the newer one from the host, as described here.

Ubuntu 14.04 gnutls_handshake failed

While trying to install mkl library in Ubuntu 14.04 docker image, I am getting a gnutls_handshake failed error
To reproduce
docker pull mxnetci/publish.ubuntu1404_cpu
docker run -it mxnetci/publish.ubuntu1404_cpu sh
Install intel mkl
wget -qO - wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2019.PUB | apt-key add -
sh -c "echo deb https://apt.repos.intel.com/mkl all main > /etc/apt/sources.list.d/intel-mkl.list"
apt-get update
Error
Err http://apt.repos.intel.com all/main amd64 Packages
gnutls_handshake() failed: Handshake failed
Refer steps : https://software.intel.com/en-us/articles/installing-intel-free-libs-and-python-apt-repo
Last version of MKL that supports Ubuntu 14.04 is MKL2018
https://software.intel.com/content/www/us/en/develop/articles/intel-math-kernel-library-intel-mkl-2018-system-requirements.html
Post that, MKL doesn't support Ubuntu 14.04 anymore.
https://software.intel.com/content/www/us/en/develop/articles/intel-math-kernel-library-intel-mkl-2020-system-requirements.html
https://software.intel.com/content/www/us/en/develop/articles/intel-math-kernel-library-intel-mkl-2019-system-requirements.html
the problem here is related to installation. MKL's system requirements contain only those OS's which are validated by this version of mkl. It means that if you copy mkl's binaries to requested OS, we expect MKL will work on Ubuntu v14. The same questions were regarding RH5 support, as an example.

Problem installing Docker Ubuntu, step related to command "pub" (Ubuntu 18.04)

My ubuntu version:
No LSB modules are available./
Distributor ID: Ubuntu /
Description: Ubuntu 18.04.3 LTS /
Release: 18.04 /
Codename: bionic
To install Docker Engine - Community, you need the 64-bit version of one of these Ubuntu versions:
Disco 19.04
Cosmic 18.10
Bionic 18.04 (LTS) (Mine)
Xenial 16.04 (LTS)
Steps I followed:
Uninstall old versions
$ sudo apt-get remove docker docker-engine docker.io containerd runc
Update the apt package index:
$ sudo apt-get update #HasErrors (2)
(1) Err:14 https://dl.bintray.com/rabbitmq/debian $distribution Release
404 Not Found [IP: 3.124. ..........]
------------------------------------------------
(2) E: The repository 'https://dl.bintray.com/rabbitmq/debian $distribution Release' does not have a Release file.
In consequence: When I get to step 3 in the webpage: https://docs.docker.com/install/linux/docker-ce/ubuntu/
$ sudo apt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker#docker.com>
sub rsa4096 2017-02-22 [S]
I get this error:
Command 'pub' not found, did you mean:
command 'hub' from snap hub (v2.13.0)
command 'dub' from snap dub (1.15.0)
command 'pcb' from deb pcb-gtk
command 'pcb' from deb pcb-lesstif
command 'pua' from deb pglistener
command 'pudb' from deb python-pudb
command 'puf' from deb puf
command 'pdb' from deb python
command 'dub' from deb dub
command 'publ' from deb atfs
See 'snap info <snapname>' for additional versions.
I just want to install Docker for Ubuntu and i am a little stuck here
Instead of installing from the repository, why don't you try doing it directly.
sudo apt-get update
sudo apt-get remove docker docker-engine docker.io
sudo apt install docker.io
sudo systemctl start docker
sudo systemctl enable docker
If this works, you will notice it only works with sudo the workaround for this issue is mentioned here
Let me know if this doesn't work! I'm also quite confused as to why your errors include RabbitMQ when you are trying to install docker on ubuntu?

install a specific version of kubernetes on centos

I installed kubernetes using these commands on centos7
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
setenforce 0
yum install -y kubelet kubeadm kubectl
This will install the latest version, so i'm looking for a method to install a specific version. for example 1.8.1
Thank you
To install a specific version of the package it is enough to define it during the yum install command:
yum install -y kubelet-<version> kubectl-<version> kubeadm-<version>
But for your particular case, when you want to install kubernetes version 1.8.1, kubernetes-cni package should be 0.5.1 version to satisfy dependency requirements:
--> Finished Dependency Resolution
Error: Package: kubelet-1.8.1-1.x86_64 (kubernetes)
Requires: kubernetes-cni = 0.5.1
Available: kubernetes-cni-0.3.0.1-0.07a8a2.x86_64 (kubernetes)
kubernetes-cni = 0.3.0.1-0.07a8a2
Available: kubernetes-cni-0.5.1-0.x86_64 (kubernetes)
kubernetes-cni = 0.5.1-0
Available: kubernetes-cni-0.5.1-1.x86_64 (kubernetes)
kubernetes-cni = 0.5.1-1
Installing: kubernetes-cni-0.6.0-0.x86_64 (kubernetes)
kubernetes-cni = 0.6.0-0
So, the final command is:
yum install -y kubelet-1.8.1 kubectl-1.8.1 kubeadm-1.8.1 kubernetes-cni-0.5.1
Kubernetes cluster can be ready to use in minutes, and it does not depend much on rpm/deb packages delivered by operating system vendors.
Packages are delivered for user's comfort and consistency of installation. Usually, it is possible to downgrade packages provided by CentOS without breaking dependencies, but you need to be careful.
Kubernetes includes the kubeadm tool, which can setup all dependencies and spin up cluster in version provided in the command line:
sudo kubeadm init --kubernetes-version=v1.9.2
The installation process of a specific version is described in
installation manual. I've also used scripts.
To avoid compatibility problem, please make sure your Kubernetes version is compatible with Docker containers engine version.

Salt: 'dockerng' __virtual__ returned False

I have Debian Jessie and I'm trying to manage Docker containers with Salt dockerng. But when I try for example this state:
# file: docker_demo.sls
hello-world:
dockerng.image_present
Then sudo salt '*' state.highstate fails:
----------
ID: hello-world
Function: dockerng.image_present
Result: False
Comment: State 'dockerng.image_present' was not found in SLS 'docker_demo'
Reason: 'dockerng' __virtual__ returned False
Started:
Duration:
Changes:
How can I fix this so dockerng.image_present can pull the image, dockerng.running can run Docker containers etc.?
The dockerng module executed by Salt minion communicates with Docker daemon over REST API using docker-py (not the CLI command docker).
The error message 'dockerng' __virtual__ returned False is a little bit misleading, but if you see the source code, it returns False because it cannot import Pyhon module docker. So this Python package must be installed.
There are packages in Debian repository: python-docker and python3-docker. But both are incompatible with the recent docker-engine (installed from APT repository deb https://apt.dockerproject.org/repo debian-jessie).
So the solution is to uninstall python-docker package if installed and to install the latest docker-py using pip:
sudo apt-get install python-pip
sudo pip install docker-py
Or use this Salt state:
python-pip:
pkg.installed
docker-py:
pip.installed:
- require:
- pkg: python-pip
Or just run
salt myminion pip.install docker-py
The python-docker package from Debian Stretch (now testing, should become Debian stable in 2017) seems to be working OK.

Resources