Docker Windows container crashes with Azure Service Fabric - docker

I am trying to run a Docker image inside a Service Fabric cluster.
This image runs fine on my local machine. However, when I deploy it to either my local cluster or a cluster on Azure Service Fabric, it starts to crash.
I tried running the docker ps command on the machine. It shows a container image running, but after 5s when I run the command again, it shows an empty list.
My application is built using ASP.NET Core 2.0.7 and my container image is microsoft/aspnetcore:2.0.7-nanoserver-1709
I am using the below OS for my cluster:
Offer: WindowsServerSemiAnnual SKU:
Datacenter-Core-1709-with-Containers-smalldisk
I see the below error:
Error event: SourceId='System.Hosting',
Property='CodePackageActivation:Code:EntryPoint'. There was an error
during CodePackage activation.System.Fabric.FabricException
(-2147017731) Failed to start Container.
ContainerName=sf-2-4e0c854d-d2d9-458a-82c5-78da874dc520_6fd774de-4796-4563-ab3f-c3bbb4d49e0c,
ApplicationId=ServiceFabricApplicationType_App2,
ApplicationName=fabric:/ServiceFabricApplication. DockerRequest
returned StatusCode=InternalServerError with
ResponseBody={"message":"container
fb204978704c52917704f1f6985ec9a73c9e76596e7258ff0ffce93c9c5109e0
encountered an error during CreateContainer: failure in a Windows
system call

It's very likely that you're running into this because of a mismatch between the version of Windows inside the image vs the version on the host.
Check out the compatibility list here.
(It specifically mentions your error message.)
To resolve this, you could:
Rebuild the container based on the version of microsoft/nanoserver or microsoft/windowsservercore
If the host is newer, use docker run
--isolation=hyperv ... Run on a different host with the same Windows version

Related

Docker socket is not found while using Intellij IDEA and Docker desktop on MacOS

I downloaded Docker using Docker Desktop for Apple M1 chips. I can run containers, the integration with VsCode works okay but I can't integrate it with Intellij IDEA Ultimate. It keeps giving this error.
But I can run my containers and create images from the terminal, I can also see the containers and images in Docker Desktop too. What could be the reason behind this? I also tried to check whether var/run/docker.sock is existing and it really isn't, there is no such file as that.
I also tried the same steps on my second computer and the exact same thing happened. Steps to reproduce: 1- Download Intellij IDEA Ultimate, open a repo that uses docker 2- Download Docker Desktop for Mac M1 3- Try to add Docker service to Intellij
I didn't do anything else because I think Docker Desktop is enough to configure everything on Mac. I am trying to run an FT on intellij and I get the error
[main] ERROR o.t.d.DockerClientProviderStrategy - Could not find a valid Docker environment. Please check configuration. Attempted configurations were:
[main] ERROR o.t.d.DockerClientProviderStrategy - UnixSocketClientProviderStrategy: failed with exception InvalidConfigurationException (Could not find unix domain socket). Root cause NoSuchFileException (/var/run/docker.sock)
[main] ERROR o.t.d.DockerClientProviderStrategy - DockerMachineClientProviderStrategy: failed with exception ShellCommandException (Exception when executing docker-machine status ). Root cause InvalidExitValueException (Unexpected exit value: 1, allowed exit values: [0], executed command [docker-machine, status, ], output was 122 bytes:
Docker machine "" does not exist. Use "docker-machine ls" to list machines. Use "docker-machine create" to add a new one.)
[main] ERROR o.t.d.DockerClientProviderStrategy - As no valid configuration was found, execution cannot continue
I've been trying everything for the last 2 days but I can't seem to find a solution.
EDITED 2022-10-31
As per the latest release notes for Docker Desktop (4.13.1), there is no need to create the symlink anymore, citing notes:
Added back the /var/run/docker.sock symlink on Mac by default, to increase compatibility with tooling like tilt and docker-py. Fixes docker/for-mac#6529.
The official fix now is to UPGRADE your Docker Desktop installation.
For the Docker Desktop (4.13.0) version:
By default Docker will not create the /var/run/docker.sock symlink on the host and use the docker-desktop CLI context instead. (see: https://docs.docker.com/desktop/release-notes/)
That will prevent IntelliJ from finding Docker using the default context.
You can see the current contexts in your machine by running docker context ls, which should produce an output like:
NAME TYPE DESCRIPTION DOCKER ENDPOINT KUBERNETES ENDPOINT ORCHESTRATOR
default moby Current DOCKER_HOST based configuration unix:///var/run/docker.sock https://kubernetes.docker.internal:6443 (default) swarm
desktop-linux * moby unix:///Users/<USER>/.docker/run/docker.sock
As a workaround that will allow IntelliJ to connect to Docker you can use the TCP Socket checkbox and put in the Engine API URL the value that appears under DOCKER ENDPOINT in the active context.
The case for this example will be: unix:///Users/<USER>/.docker/run/docker.sock
Then IntelliJ will be able to connect to Docker Desktop.
**Hacky option**
Another way to make IntelliJ (and other components that rely on the default config) to find Docker will be to manually create a symlink to the new DOCKER ENDPOINT by running:
sudo ln -svf /Users/<USER>/.docker/run/docker.sock /var/run/docker.sock
In that way all the components looking for Docker under /var/run/docker.sock will find it.

Docker Desktop leaks docker-compose CLI

I also created an issue at Docker for Windows GitHub for the following behaviour and I'm wondering if somebody else experiences this degression since Docker for Desktop Version >4.5.1:
Docker Desktop for Windows 4.6.0 somehow mixes independent docker-compose executions. F.e.:
Execute docker-compose file1.yml in PowerShell-01
Execute docker-compose file2.yml in PowerShell-02
Now PowerShell-01 either dies with warning "no such service: " or logs from file1.yml now appear in PowerShell-02
Switching back to Docker for Desktop 4.5.1 the mixed CLI output doesn't happen anymore.

Docker Installation Problems

I'm new to using Docker (never used it before) and I'm running into these errors:
I installed the Docker for Windows and following the steps on this
tutorial, but Docker Desktop doesn't load up for me at all.
I tried to run the docker pull hello-world command but I'm getting the error: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the docker daemon is not running.
How do I fix this? Thanks

Error starting Windows docker container with managed service account

I'm trying to test out docker containers running with a domain credential and I'm following these instructions from Microsoft Docs. I have created the Group MSA, which I'm pretty sure I've done correctly as I can run other services on my local computer using it.
I'm testing on a Windows 10 PC, running hyper-v docker containers.
I have built an image called sqltest. When I run the following, the container does evey as expected:
docker run -it sqltest
I tried creating active directory credentials using this command:
New-CredentialSpec -Name developerpcsql -AccountName developerpcsql
Calling Get-CredentialSpec confirms that the json file is created as expected, and it looks right when I open the file.
To run the container, I'm using:
docker run -it --security-opt "credentialspec=file://developerpcsql.json" sqltest
When I do that, it takes about 30 seconds and then I get the following error:
Error response from daemon: container d97082fab98c0205c0072b0a8b79fb7835c8e90828498428b976e378762cc412 encountered an error during Start: failure in a Windows system call: The operation timed out because a response was not received from the Virtual Machine hosting the Container. (0xc0370109).
To confirm it's not my container I've also tried using the standard microsoft/servercore container and get the same error.
Any ideas on what I'm missing?
It looks like it does not work for Windows 10.
Here you can find discussion on the topic
Virtualization-Documentation git repo
It does work as expected for Windows Server 2016 Hosted container.

Can't remove or stop a container

The docker version is 0.10.0, the linux system is Centos6.5.
Three containers have been running in the system for 3 months in OpenStack. I put the nova-compute service in a container.
I found that nova-compute container didn't work recently.
I delete the json.log of the container when I found the log is 3GB,
but it still does not work.
I try to delete,stop,restart the container,restart the system,it's still the same.
dockerctl 6a82f22d2dad
lxc-attach:failed to get the init pid
docker rm -f 6a82f22d2dad
Error:
2015/08/11 08:51:32 Error:failed to remove one or more containers
docker stop 6a82f22d2dad
Error:failed to stop one or more containers
When running docker ps, the compute container works well.
Now I could not get other information because I can't connect the remote machine. Has anybody the same problem?
Redhat has come right out and stated that they do not support Docker on CentOS 6.x systems.
If you can, I suggest you upgrade to CentOS 7 and the latest Docker version.
You can find more info about CentOS 6.x Docker support here

Resources