Error pulling edge agent using Docker EE on Windows Server 2016

edge

#1

docker run hello-world

works fine, but when I run

docker pull losant/edge-agent

I get the following:

PS C:\Windows\system32> docker pull losant/edge-agent
Using default tag: latest
latest: Pulling from losant/edge-agent
no matching manifest for unknown in the manifest list entries


#2

Hi @Trey_Carlee

Sorry you’re having troubles. What’s happening is that Windows is trying to pull a Windows-based docker image. Currently, our edge agent does not support the architecture windows-amd64. You can read about all the different types here.

But after some research, you can run Linux based images within Windows:

It looks like you can toggle which daemon (Linux or Windows) the Docker CLI talks to. In this case, you would have to configure it to use the Linux Daemon. That should solve your problem.


#3

Since this is the Docker EE version running on Windows Server 2016, it doesn’t have the accompanying GUI. Is there a PowerShell command to switch to the Linux Daemon?


#4

Ah. I just found this:

Looks like you can specify a --platform linux. This may work:

docker pull --platform linux  losant/edge-agent 

We are going to order a Windows Gateway for our Edge Lab to test these things too :slight_smile:


#5

Nice! Getting there. Now I get this:

docker pull --platform linux  losant/edge-agent
"--platform" is only supported on a Docker daemon with experimental features enabled

How can I turn on experimental?
> docker info

Containers: 2
 Running: 0
 Paused: 0
 Stopped: 2
Images: 1
Server Version: 18.09.2
Storage Driver: windowsfilter
 Windows:
Logging Driver: json-file
Plugins:
 Volume: local
 Network: ics l2bridge l2tunnel nat null overlay transparent
 Log: awslogs etwlogs fluentd gelf json-file local logentries splunk syslog
Swarm: inactive
Default Isolation: process
Kernel Version: 10.0 14393 (14393.2828.amd64fre.rs1_release_inmarket.190216-1457)
Operating System: Windows Server 2016 Standard Version 1607 (OS Build 14393.2828)
OSType: windows
Architecture: x86_64
CPUs: 4
Total Memory: 8GiB
Name: LIGHT
ID: CZCS:MICE:KIC4:U4VP:XFQM:RHS2:XQAP:VSVN:MLRN:EIHI:IQMZ:M53R
Docker Root Dir: C:\ProgramData\docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
 com.docker.security.fips=enabled
**Experimental: false**
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

#6

Got it!

--experimental


#7

Can’t find a daemon.json file anywhere. How would I go about running the docker daemon with the --experimental flag?


#8

Unfortunately, we don’t have a Windows gateway to test this on. But I would try this:

‘docker pull --experimental --platform linux losant/edge-agent’


#9
docker pull --experimental --platform linux losant/edge-agent
unknown flag: --experimental

Working on a Windows 10 version with Docker Desktop, which is already going much more smoothly.

Appreciate the help and quick responses.


#10

Oh nice! Is it possible to enable the experimental flag using the GUI settings? I’m not seeing much on this topic for Windows using Google.


#11

It sure does, but I didn’t need it.

Got a new error after running/creating the container.

Command I ran:
docker run -d --restart always --name docs-agent -e 'DEVICE_ID=' -e 'ACCESS_KEY=' -e 'ACCESS_SECRET=' -v C:/losant-edge-agent:/data losant/edge-agent

Edit: Removed keys (wups!)

Error:
2019-02-27T23:04:27.915Z [e[31merrore[39m] Losant Edge Agent was unable to start due to the following configuration errors:
OpenError error when attempting to initialize persistent store at path /data/losant-edge-agent-store.db


#12

I think it’s some sort of permissions error. If I take this piece out, it runs successfully and connects to the edge compute device in the Losant dashboard.


#13

I would suggest fixing the permissions on that folder. If not, your container won’t know about some things it should if it restarts.


#14

Hi @Trey_Carlee!

Just wanted to check in to see if you got things to work. It would be helpful to know the process so we can add it to the documentation for others.