Running docker container on nanoPI leads to "exec format error" - docker

The goal is to run docker containers on my nanoPI in the same manner as on a ubuntu server machine.
I have recently run into the following error when attempting docker run -it kylemanna/openvpn:
standard_init_linux.go:185: exec user process caused "exec format error"
I also get the same error when executing docker-compose using the container approach
Since I get the problem whether I use docker compose or not, I am starting to think that the error might be my usage of docker on the nanoPI. It may not be supported in the same way.
However, I can execute other containers/images just fine, hello-world, ubuntu, etc.
How do I go about determining the cause of this error? Where is the source code for standard_init_linux.go:185? And, what am I doing incorrectly?

Through trial and error, I discovered that if I rebuilt the openvpn image directly from the github repository on the machine with which the container would be run using (docker build <url>), then this error was resolved for the openvpn container but not (yet) for docker-compose. I imagine rebuilding the docker-compose container will fix the issue with that one too.
This is most likely due to a binary not having been compiled for the machine type that I was using.
Source/Inspiration: https://github.com/moby/moby/issues/23865

Related

Running sstableutil after installing and running cassandra using docker

I want to run some of the programs in SSTable Tools however the doc says:
Cassandra must be stopped before these tools are executed, or unexpected results will occur. Note: the scripts do not verify that Cassandra is stopped.
I installed and started cassandra using docker. So how do I run something like sstableutil?
Something like this, but you need to make sure that you have data on the host system, or in the Docker volume (it's good idea anyway):
stop container
execute docker run -it ...volume_config... --rm cassandra sstable_command
start container
P.S. But it really depends on the command - I remember that some commands were documented as required stop, but not really required

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

Set up Docker Build Step in Bamboo

I am currently despairing at the attempt of setting up a docker build step in Atlassian Bamboo.
For starters, I just want to create a build configuration that runs the hello-world image as a proof of confluence. So far, I have failed.
I have tried following the steps on https://confluence.atlassian.com/bamboo0609/using-bamboo/jobs-and-tasks/configuring-tasks/configuring-the-docker-task-in-bamboo , but to no avail.
My setup is this:
We have Bamboo installed on an Ubuntu server. I also installed Docker on that server and added the bamboo user to the docker usergroup and restarted the server to make sure the permission change takes effect. At this point, docker run hello-world works when I run it directly on the server. I can also confirm that this is the server that Bamboo runs on since Bamboo went offline whenever I restarted the server that I installed Docker on.
Then, I have added the docker capability to the server (the agent is the default agent, so it inherits this capability from the server). As the docker path, I have tried various things, none of which worked (aka, the following errors remained the same for each of these):
/snap/docker (the first folder that I found on a manual search)
/usr/bin/docker (the recommended path, though on inspecting the Ubuntu server I quickly found out that no docker folder exists under /usr/bin on the Ubuntu derver)
/var/snap/docker/common/var-lib-docker (the path that Docker returns as its Root Directory when I run docker info on the Ubuntu server)
/var/snap/docker (for good measure)
Now, for the runner, I have tried two different approaches.
First, I tried using a Docker runner with the following settings:
Command: Run a Docker container
Docker image: hello-world
This returns the following error message:
┊
Error occurred while running Task 'Hello World Docker Test(5)' of type com.atlassian.bamboo.plugins.bamboo-docker-plugin:task.docker.cli.com.atlassian.bamboo.task.TaskException: Failed to execute task
┊
Caused by: com.atlassian.bamboo.docker.DockerException: Error running Docker run command
┊
Caused by: com.atlassian.utils.process.ProcessException: Error executing /snap/docker run --volume /var/atlassian/application-data/bamboo/xml-data/build-dir/CAM-DOC-JOB1:/data --workdir /data --rm hello-world
┊
The second was just to run a shell runner for the command docker run hello-world, which returned the following error:
docker: not found
At this point, I feel like I'm out of ideas. Everything points towards Bamboo for some reason not finding Docker on the server, even though I can clearly confirm that it is there. I have tried various different approaches of telling Bamboo where to find Docker, but none of them have worked.
It's obvious that I'm doing something wrong, but I can't figure out what. Or maybe the problem lies in an entirely different direction altogether? Anyway, I would be grateful for any insight shared on this matter.
Okay, I found out what caused this strange behaviour.
The problem was that I installed Docker using sudo snap install docker, and apparently installing docker via snap causes problems with Bamboo.
So I got it to work using these simple steps:
[Server] Uninstalled Snap Docker using sudo snap remove docker
[Server] Reinstalled Docker using sudo apt install docker.io
[Bamboo] Changed the path to Docker in the Server Capabilities to /usr/bin/docker
After that, the hello-world image build succeeded and printed the expected output to the log.

Connection reset when running Jupyterhub with Docker

I'm trying to run Jupyterhub in a Docker container (see this link). I run the command listed under "Docker" and the container successfully runs but when I go to connect at http://localhost:8000, I get a message saying "The connection was reset."
I have also tried creating a Dockerfile that makes use of jupyterhub/configurable-http-proxy because I thought that might have been what was missing but I couldn't connect with that either. Additionally I tried adding a jupyterhub_config.py to the container with no luck.
Is there a step I am missing or something else that I need to configure to get Jupyterhub running in a Docker container?
This was caused by a short-lived bug in version 0.9. Pulling a newer version using
docker pull jupyterhub/jupyterhub
solved this issue.

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.

Resources