WSL: Can't install docker on WSL 2, Ubuntu 18.04 - docker

I've searched lots of related posts on here and other site but anything didn't solve my problem.
As mentioned on title I'm struggling to install docker on linux subsystem on window OS
I'm with win 10 home edition so I've already installed Docker tool box, and my wsl is version 2 with Ubuntu 18.04
I was following the instructions and everything was fine until I did:
~$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
gpg: can't connect to the agent: IPC connect call failed
Is there anyone who had same difficulty but solved this problem?
Thank you in advance!

The issue is because of a real-time clock issue with the Glibc library under the WSL v1 setup. WSL v2 may fix this under the hood and you may not run into the issue in future.
Now you can fix Glibc manualy:
$ sudo add-apt-repository ppa:rafaeldtinoco/lp1871129
$ sudo apt update
$ sudo apt install libc6=2.31-0ubuntu8+lp1871129~1 -y
$ sudo apt-mark hold libc6
//Remove "-y" if needed on above step #3.
//And when asked, give "y" and hit enter.
The above set of commands will add the latest version of the Glibc library and put the stable library on hold, until needed to reenable.
You can track this issue https://github.com/microsoft/WSL/issues/5125

Related

Can't find any man pages in Fedora Docker Image

After installing the man pages via dnf, I still can't find them inside /usr/share/man.
docker run --rm -it fedora bash -c "dnf install -y man-pages && ls -lR /usr/share/man"
Did I miss something?
The default configuration for the docker version of fedora disable the installation of documentation.
cat /etc/dnf/dnf.conf
Check out the last line :
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=False
skip_if_unavailable=True
tsflags=nodocs
However, it is still possible to change the last line or override it like below command :
dnf install -y man-pages --setopt='tsflags='
I would liked to contribute as I was looking for the answer and I found the answer, from the link here
Confirm the below line is removed from /etc/dnf/dnf.conf
tsflags=nodocs
and remove and reinstall the man pages using dnf
dnf install man man-pages man-db

Docker: Openjdk:14 RHEL based imaged, cannot install yum/wget/netstat

In my dockerfile, I need a maven builder (3.6 at least) working on a OpenJDK (J14 is required).
FROM maven:3.6.3-openjdk-14 as builder
The problem is simple: I need netstat command because it is used in several scripts. The OpenJDK official image is RHEL based, so it comes without any of this package installed.
I tried to download it or yum via wget command but, as you can guess, it is not installed. I feel trapped because it seems like you cannot you can't install any package on it.
That image is actually based on Oracle
$ podman run -it maven:3.6.3-openjdk-14 /bin/bash -c 'cat /etc/os-release'
NAME="Oracle Linux Server"
VERSION="8.2"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="8.2"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Oracle Linux Server 8.2"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:8:2:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://bugzilla.oracle.com/"
ORACLE_BUGZILLA_PRODUCT="Oracle Linux 8"
ORACLE_BUGZILLA_PRODUCT_VERSION=8.2
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=8.2
And this is actually a "slim" variant where dnf or yum aren't installed, but microdnf is. Try using that, instead:
RUN microdnf install /usr/bin/netstat
Or
RUN microdnf install net-tools

A Solution to Kubernetes pods stuck on Terminating

I was one that was having trouble with this above mentioned issue where after a "kubectl delete -f" my container would be stuck on "Terminating".
I could not see anything in the Docker logs to help me narrow it down.
After a Docker restart the pod would be gone and i could continue as usual, but this is not the way to live your life.
I Googled for hours and finally got something on a random post somewhere.
Solution:
When i installed Kubernetes on Ubuntu 16.04 i followed a guide that said to install "docker.io".
In this article it said to remove "docker.io" and rather use a "docker-ce or docker-ee" installation.
BOOM, i did it, disabled the swappoff function and my troubles are no more.
I hope this helps people that are also stuck with this.
Cheers
As kleuf mentioned in comments, the solution to the stuck docker container in his case was the following:
When i installed Kubernetes on Ubuntu 16.04 i followed a guide that
said to install "docker.io". In this article it said to remove
"docker.io" and rather use a "docker-ce or docker-ee" installation.
sudo apt-get remove docker docker-engine docker-ce docker.io
sudo apt-get remove docker docker-engine docker.io -y
curl -fsSL download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install docker-ce -y
sudo service docker restart
BOOM, i did it, disabled the swappoff function and my troubles are no
more.
I hope this helps people that are also stuck with this.

docker Error with pre-create check: "We support Virtualbox starting with version 5

I'm trying to create docker machine host using the following command in fedora OS version 25.
docker-machine create -driver=virtualbox host01
I get below error while executing the command.
Error with pre-create check: "We support Virtualbox starting with version 5. Your VirtualBox install is \"WARNING:
The vboxdrv kernel module is not loaded.
Either there is no module available for the current kernel (4.10.12-200.fc25.x86_64) or it failed to load.
Please try load the kernel module by executing as root
dnf install akmod-VirtualBox kernel-devel-4.10.12-200.fc25.x86_64 akmods --kernels 4.10.12-200.fc25.x86_64 && systemctl restart systemd-modules-load.service
You will not be able to start VMs until this problem is fixed.\\n5.1.26r117224\".
Please upgrade at https://www.virtualbox.org"
I have already virtualbox latest version installed. Running the command suggested by
sudo dnf install akmod-VirtualBox kernel-devel-4.10.12-200.fc25.x86_64 akmods --kernels 4.10.12-200.fc25.x86_64 && systemctl restart systemd-modules-load.service
I got the below error
Last metadata expiration check: 0:48:35 ago on Thu Aug 17 22:38:47 2017.
Package akmods-0.5.6-7.fc25.noarch is already installed, skipping.
No package --kernels available.
No package 4.10.12-200.fc25.x86_64 available.
Any suggestions?
I also had this problem and for this I upgrade Virtual box to 5.2 using following commands. This link help me
sudo apt-get remove virtualbox virtualbox-5.1
sudo sh -c 'echo "deb http://download.virtualbox.org/virtualbox/debian xenial contrib" >> /etc/apt/sources.list.d/virtualbox.list'
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
sudo apt-get update
sudo apt-get install virtualbox-5.2
Hope this helps.
For windows users, in 2022 such problem still exists. So for those who use last build (now it is virtualBox-6.1.32-149290-Win), try to use version that starts with prefix 5. But not all '5' versions work. For example, for me worked only version 5.2.42 while versions: 5.2.18, 5.2.20, 5.2.44 didn't work
Helped for win 11 x64

What is the docker daemon version on Vagrant provisioner?

I am trying to understand which is the version that Vagrant installs on its VM (my specific case: using box ubuntu/trusty64) if a Docker provisioner is selected.
In particular, I would like it to be a fixed version since it has to reflect my staging environment.
Unfortunately, in the documentation of the provisioner nothing is mentioned about which version of the Docker daemon will be installed. Same by searching for my question, either on google or on github issues.
Can somebody point me to the right directions/docs?
Basically vagrant will try to install the latest version available from the repo. You can review in the source code
machine.communicate.tap do |comm|
comm.sudo("apt-get update -qq -y")
comm.sudo("apt-get install -qq -y --force-yes curl apt-transport-https")
comm.sudo("apt-get purge -qq -y lxc-docker* || true")
comm.sudo("curl -sSL https://get.docker.com/ | sh")
end
If you prefer to have a specific version installed you would need to run a shell provisioner before your docker provisioner (provisioner are run in order) and install the version you want to work with

Resources