Running windows docker in virtual machine crashing - docker

I am running windows docker on a virtual machine and when i try to run docker run, it crashes the vm as well saying unhandled exception. And get logged out of the vm
The vm is windows server 2016 running on a host that is 2012.
The docker version info
Client:
Version: 17.06.2-ee-6
API version: 1.30
Go version: go1.8.3
Git commit: e75fdb8
Built: Mon Nov 27 22:46:09 2017
OS/Arch: windows/amd64
Server:
Version: 17.06.2-ee-6
API version: 1.30 (minimum version 1.24)
Go version: go1.8.3
Git commit: e75fdb8
Built: Mon Nov 27 22:55:16 2017
OS/Arch: windows/amd64
Experimental: false
The docker logs get corrupted for this specific container I am trying to run each time that I try to run the docker. So i cant diagnose what happened. Please suggest what i can do.

In a windows OS I ended up running docker inside a vagrant debian/centos box.
It's ligthweight and never had a problem.

Related

Docker cannot access any Internet URL during build

I have the following Dockerfile:
FROM mcr.microsoft.com/windows/servercore:ltsc2019
SHELL ["powershell", "-Command"]
RUN Invoke-WebRequest -UseBasicParsing http://www.google.com
On my Windows 10 machine, I run docker build . and get the following:
Basically, Docker is unable to access any Internet URL I try. I can run the same Dockerfile on my Windows Server 2019 Core machine and everything works fine. I'm running Docker version 18.09.2 and haven't updated it recently. This was working a few days ago, so it's a new issue. I've tried restarting the Docker engine and also rebooting. I've also tried a docker system prune. Any ideas what broke this? I'd rather not reinstall Docker if possible.
Docker Info:
Client: Docker Engine - Community
Version: 18.09.2
API version: 1.39
Go version: go1.10.8
Git commit: 6247962
Built: Sun Feb 10 04:12:31 2019
OS/Arch: windows/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.2
API version: 1.39 (minimum version 1.24)
Go version: go1.10.6
Git commit: 6247962
Built: Sun Feb 10 04:28:48 2019
OS/Arch: windows/amd64
Experimental: false
Update: Seems to be DNS related. I can ping things.
This is a known issue with ltsc2019 images (https://github.com/Azure/AKS/issues/1029). Put following at the start of your dockerfile or before entrypoint
Set-DnsClientServerAddress -InterfaceIndex (Get-NetAdapter).IfIndex -ServerAddresses ('8.8.8.8')

Un-responsive docker containers

I see that docker containers in my host show as Running/Up , however when I try to exec , I see .
rpc error: code = 2 desc = containerd: container not found
I don't see any related processes running on ps -aef output.
Looking through the dockerd logs I see -
level=error msg="containerd: get exit status" error="containerd:
process has not exited" id=e4e5d58359 pid=bba1944c4 systemPid=5132
docker version:
Client: Version: 1.13.1 API version: 1.26 Go
version: go1.7.5 Git commit: 092cba3 Built: Wed Feb 8
06:50:14 2017 OS/Arch: linux/amd64
Server: Version: 1.13.1 API version: 1.26 (minimum version
1.12) Go version: go1.7.5 Git commit: 092cba3 Built: Wed Feb 8 06:50:14 2017 OS/Arch: linux/amd64 Experimental: false
What might be causing this behavior ? Pointers?
This issue is fixed since v17.12.
Version 18.03 is the latest supported release so you should do upgrade your docker to latest edition.

Building Docker Images on Windows Server 2016

We are looking forward to build docker images on a Windows Server 2016 Jenkins slave (though not ideal) for our microservices using a base openjdk image.
We did get Docker EE installed on Windows Server 2016 and as expected getting the below error:
PS C:\> docker pull openjdk:8
8: Pulling from library/openjdk
no matching manifest for windows/amd64 in the manifest list entries
Unlike Windows 10, i have not been able to set the daemon to switch to linux containers.
Is it possible?
How can this be done?
What issues will we be running into if we went this route?
Docker Version:
PS C:\> docker version
Client:
Version: 18.03.1-ee-3
API version: 1.37
Go version: go1.10.2
Git commit: b9a5c95
Built: Thu Aug 30 18:42:35 2018
OS/Arch: windows/amd64
Experimental: false
Server:
Engine:
Version: 18.03.1-ee-3
API version: 1.37 (minimum version 1.24)
Go version: go1.10.2
Git commit: b9a5c95
Built: Thu Aug 30 18:56:49 2018
OS/Arch: windows/amd64
Experimental: true
Windows Build:
OS Name: Microsoft Windows Server 2016 Standard
OS Version: 10.0.14393 N/A Build 14393
The error is because openjdk:8 is not a windows container.
To check this ,you can try pulling "microsoft/nanoserver" and this will work fine because it's a windows container
you can check these links for running linux containers in windows 2016 server:
https://blog.docker.com/2017/09/preview-linux-containers-on-windows/
https://learn.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/linux-containers
This is an experimental feature so not recommended for production
Another option is to use docker for windows:
https://store.docker.com/editions/community/docker-ce-desktop-windows and in the installation configuration window leave the use windows container unchecked

"docker pull redis" fails on Docker for Windows

I've installed Docker EE for Windows Server 2016 and was able to pull and run the hello-world example.
When I invoke "docker pull redis" , I get:
Using default tag: latest
latest: Pulling from library/redis
no matching manifest for windows/amd64 in the manifest list entries
My docker versions:
Client:
Version: 17.10.0-ee-preview-2
API version: 1.32
Go version: go1.8.3
Git commit: 10e292d
Built: Thu Sep 21 19:58:53 2017
OS/Arch: windows/amd64
Server:
Version: 17.10.0-ee-preview-2
API version: 1.32 (minimum version 1.24)
Go version: go1.8.3
Git commit: 777d4a1
Built: Thu Sep 21 20:08:05 2017
OS/Arch: windows/amd64
Experimental: false
Not sure what I'm doing wrong here.
As the docker info shows, the server is not started in experiemental mode.
You need to start docker server with experiemental mode on windows server. Check linux-containers-on-windows to see how you can do that.

origin-pod not starting with fresh 3.6 install

I am setting up two Openshift Origins clusters running on RHEL 7.4.
The only thing that really shows me anything that is really wrong is this error log from the origin-pod from the docker node.
error: --deployment or OPENSHIFT_DEPLOYMENT_NAME is required
This leads me to think the deployment name is not getting passed to the container at startup. It then crashes not letting the deploy spin up. I see a ton of CNI errors but this is due to all containers assigned to this pod are killed as the origin-pod fails.
Here are the version of everything I could thing of that is needed to help find the true problem.
oc v3.6.0+c4dd4cf
kubernetes v1.6.1+5115d708d7
features: Basic-Auth GSSAPI Kerberos SPNEGO
Server https://is-origins-tetration.cisco.com:8443
openshift v3.6.0+c4dd4cf
kubernetes v1.6.1+5115d708d7
docker version
Client:
Version: 1.12.6
API version: 1.24
Package version: docker-1.12.6-55.gitc4618fb.el7.x86_64
Go version: go1.8.3
Git commit: c4618fb/1.12.6
Built: Thu Aug 24 14:48:49 2017
OS/Arch: linux/amd64
Server:
Version: 1.12.6
API version: 1.24
Package version: docker-1.12.6-55.gitc4618fb.el7.x86_64
Go version: go1.8.3
Git commit: c4618fb/1.12.6
Built: Thu Aug 24 14:48:49 2017
OS/Arch: linux/amd64
oci-umount-1.12.6-55.gitc4618fb.el7.x86_64
oci-register-machine-0-3.11.1.gitdd0daef.el7.x86_64
oci-systemd-hook-0.1.12-1.git1e84754.el7.x86_64
Has anyone else seen this type of error?

Resources