8 8
MathiasRenner

tutorial Docker on armbian!

Recommended Posts

did you try running docker and how is the performance

 

Neither know nor care. It's documented so why don't you try it out yourself and report back? https://github.com/igorpecovnik/lib/wiki/Advanced-features#how-to-run-docker

 

Please keep in mind that we're using 816 MHz fixed clockspeed currently with H3 devices running mainline kernel which works fine on Orange Pis but your Beelink and the other non Orange H3 devices might overheat too much even at this clockspeed so take care that you limit CPU load.

 

THS for H3 devices is WiP: https://groups.google.com/forum/#!topic/linux-sunxi/Od3YMp-wUcg%5B1-25%5D

Share this post


Link to post
Share on other sites

Neither know nor care. It's documented so why don't you try it out yourself and report back? https://github.com/igorpecovnik/lib/wiki/Advanced-features#how-to-run-docker

 

Please keep in mind that we're using 816 MHz fixed clockspeed currently with H3 devices running mainline kernel which works fine on Orange Pis but your Beelink and the other non Orange H3 devices might overheat too much even at this clockspeed so take care that you limit CPU load.

 

THS for H3 devices is WiP: https://groups.google.com/forum/#!topic/linux-sunxi/Od3YMp-wUcg%5B1-25%5D

Ok. I have not got the box yet, just got to know this site recently. I am still thinking of the box to get that can run docker better, either x2 or m18

Share this post


Link to post
Share on other sites
The system I entered. lavvy has prompted need a username and password.

Tried to enter commands to check the result.

 




$ sudo docker version
sudo: unable to resolve host black-pearl
sudo: docker: command not found


$ docker run -d -p 80:80 hypriot/rpi-busybox-httpd
-bash: docker: command not found



 

As I understand it, docker is not installed in this image ?

Share this post


Link to post
Share on other sites

oh wow, @balbes you may try to remove sudo and try

 

docker version

 

https://docs.docker.com/engine/reference/commandline/version/

 

i guess there should be docker installed in the hypriot image 

 

or you can try installing docker

 

echo "deb https://packagecloud.io/Hypriot/Schatzkiste/debian/wheezy main" > /etc/apt/sources.list.d/hypriot.list
curl https://packagecloud.io/gpg.key| sudo apt-key add -
apt-get update
apt-get -y install --no-install-recommends docker-hypriot
apt-get -y install cgroupfs-mount
reboot

 

https://github.com/igorpecovnik/lib/wiki/Advanced-features#how-to-run-docker

Share this post


Link to post
Share on other sites
The command without "sudo". The result is the same. When you try to install according to instructions. When upgrading packages get the error.


W: Failed to fetch https://packagecloud.io/Hypriot/Schatzkiste/debian/dists/wheezy/InRelease Unable to find expected entry 'main/binary-arm64/Packages' in Release file (Wrong sources.list entry or malformed fi)

E: Some index files failed to download. They have been ignored, or old ones used instead.


As far as I understand. The source for wheezy branch/armh. The image on the branch jessie/arm64. These are different branches and architecture. Perhaps we should try to collect in the docker image from source.

Share this post


Link to post
Share on other sites
The problem is not how to add the repository. The problem is that this repository is not intended for branch jessie (which is assembled the image). There is no support aarch64 (arm64). Platform Amlogic S905 is arm64 (aarch64). I think need to gather docker from source. Given the aarch64 platform.

Share this post


Link to post
Share on other sites

I usually think 32bit images run in 64bit arch.

Did you try adding it manually to the sources.list

Share this post


Link to post
Share on other sites

At mathiasrenner any time line for that, i think docker will be faster on 64-bit arch.

And wait a minute, what about odroid c2 package

Share this post


Link to post
Share on other sites

I agree with balbes150: We do not offer 64-bit (aarch64) Docker packages yet.

 

For now, you need to compile them yourself...

 
What better source to use for Assembly ?

Share this post


Link to post
Share on other sites
Launched docker on the Spot i7 (Amlogic S905). For the first validation used a ready-made solution on the basis of the Odroid C2. In the future I want to make a version based on armbian.


odroid@odroid64:~$ docker info
[ 92.523634] aufs au_opts_verify:1604:docker[354]: dirperm1 breaks the protection by the permission bits on the lower branch
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 1.11.0-dev
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 0
Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Plugins:
Volume: local
Network: null host bridge
Kernel Version: 3.14.29-14-odrobian+
Operating System: Debian GNU/Linux 8 (jessie)
OSType: linux
Architecture: aarch64
CPUs: 4
Total Memory: 741.1 MiB
Name: odroid64
ID: JJRC:GRKQ:HKO5:NQH4:PSBY:W7ZQ:2YRU:XTLH:A3SK:VEQR:UKT2:BGEM
Docker Root Dir: /var/lib/docker
Debug mode (client): false
Debug mode (server): false
odroid@odroid64:~$ docker -v
Docker version 1.11.0-dev, build 6c35350-unsupported
odroid@odroid64:~$


Share this post


Link to post
Share on other sites

Wow great @balbes150. It would be nice to have it in armbian Jessie desktop /server.

Did you try running a container?

 

$ docker run -d -p 80:80 hypriot/rpi-busybox-httpd

Share this post


Link to post
Share on other sites

I too am running docker installed direct from the stock repositories. Running Armbian 5.15 Xenial on a lime2-emmc. Next step is to also get aufs running.

 

Now that we are able to do it directly from stock, are there any advantages to using the hypriot builds and repositories?

 

I am building our Docker base images on a development machine and copying them over, since the build size is a little too big+intense to do on the emmc (final image is 700+ MB). ;) But our actual application image can be built on top of the base image fine, since it is only a few file copies. (We are running from SSD in production, the emmc is just for failsafe.)

 

docker info/version:

 

 

root@lime2:~# docker info

Containers: 5
 Running: 0
 Paused: 0
 Stopped: 5
Images: 1
Server Version: 1.10.3
Storage Driver: overlay
 Backing Filesystem: extfs
Execution Driver: native-0.2
Logging Driver: json-file
Plugins: 
 Volume: local
 Network: bridge null host
Kernel Version: 4.6.3-sunxi
Operating System: Ubuntu 16.04 LTS
OSType: linux
Architecture: armv7l
CPUs: 2
Total Memory: 1001 MiB
Name: lime2
ID: CCQ7:CGPS:NXJ3:URQ4:U7CF:IBHF:FPKF:RK76:GAE6:LGOP:M2CK:JRCN
 
root@lime2:~# docker -v
Docker version 1.10.3, build 20f81dd

 

 

Share this post


Link to post
Share on other sites

For those who want to try out docker on a TV set-top boxes with Amlogic S905. There is a working version of the binary file :

 

http://forum.odroid.com/viewtopic.php?f=144&t=22703

 

service.system.docker-7.0.104.aufs.zip

 

Tested on Tronsmart Vega S95 Telos his way Armbian. When running manually all works. If there is interest, we can build a turnkey package or image.

 

 

A screenshot from running on a media box container by connecting it to the PC.

docker run -d -p 80:80 hypriot/rpi-busybox-httpd

 

https://yadi.sk/d/hp1THH-xuXNrF

Share this post


Link to post
Share on other sites

For those who want to try out docker on a TV set-top boxes with Amlogic S905. There is a working version of the binary file :

 

http://forum.odroid.com/viewtopic.php?f=144&t=22703

 

service.system.docker-7.0.104.aufs.zip

 

Tested on Tronsmart Vega S95 Telos his way Armbian. When running manually all works. If there is interest, we can build a turnkey package or image.

 

 

A screenshot from running on a media box container by connecting it to the PC.

docker run -d -p 80:80 hypriot/rpi-busybox-httpd

 

https://yadi.sk/d/hp1THH-xuXNrF

 

 

Yes yes yes and YES. We are very much interested. Please leo include it into the image. And please could you make the image run from nand.

Share this post


Link to post
Share on other sites

Hi guys!

Long time lurker, first time poster.

 

I'm running Armbian with mainline 4.7.2 kernel on my Orange PI PC.

Docker is 1.11.1 provided by the docker-hypriot package.

I'm mostly quite happy with this setup, but there is one thing, I can't figure out:

 

I have a torrent daemon container (Transmission daemon running on an Alpine base) which downloads to an USB HDD (formatted with NTFS) attached to the OPI.

The mount-point of the HDD is mounted as a volume inside the container.

 

The problem: soon after Transmission starts to download, the whole OS freezes and the OPI crashes and restarts.

 

I've tried to limit the download speed, but no dice. Also tried Transmission on an Ubuntu base and Deluge on Alpine, but the issue stays.

 

Every other container (Samba, a few Python and Mono apps) runs fine and if I stop the Transmission container the whole system is stable, even when it is running but doesn't do anything, but as soon as it starts to download it is just a matter of minutes until the system crashes.

 

I tried to look at sar/iotop logs, obviously there is a spike in the IO activity, but nothing out of ordinary.

 

I'd greatly appreciate any idea.

 

Thank you.

Best regards.

Share this post


Link to post
Share on other sites

Check power first.

 

That was one of my first intentions to check. I forgot to mention, that the USB drive has its own power supply.

I also tried to "stresstest" the board with the stress tool, and the system was stable during high IO, high load and combined IO+load.

 

In the meantime, I've installed Transmission on the host Armbian OS, but sadly the instability persists, so it's not Docker-related.

 

Note: before switching to Armbian, not so long ago, I've used loboris' Fedora22 image and never had instability problems, as far as I know, he overvolted the SoC. Can it be that my board needs a bit of overvolting? :/ How can I try it?

Share this post


Link to post
Share on other sites

Check temperature second.

 

I managed to crash repeatedly an A20 (with armbian throttling) by rsync at 10 Mbits/s ! (Had to lower cpufreq to finish backup !)

 

Pobably it does not like to be enclosed with a disk ...

 

Have you monitored the temp until it crashed ?

Share this post


Link to post
Share on other sites

Note: before switching to Armbian, not so long ago, I've used loboris' Fedora22 image and never had instability problems, as far as I know, he overvolted the SoC. Can it be that my board needs a bit of overvolting? :/ How can I try it?

 

That's a good idea. First you should try to install RPi-Monitor with our H3 adoptions (sudo armbianmonitor -r). This adds monitoring to the board but it would also be a good idea to change mount options in /etc/fstab (since in case of crashes otherwise the most interesting data will be missing since Armbian comes with a default 600 second commit interval to minimize write activity to SD card).

 

To increase VDD_CPUX voltage use bin2fex/fex2bin with script.bin and increase every voltage value by 40mV: https://github.com/igorpecovnik/lib/blob/master/config/fex/orangepipc.fex#L740-L753 (requires a reboot of course)

Share this post


Link to post
Share on other sites

Thank you guys for your answers.

 

Check temperature second.

I managed to crash repeatedly an A20 (with armbian throttling) by rsync at 10 Mbits/s ! (Had to lower cpufreq to finish backup !)

Pobably it does not like to be enclosed with a disk ...

Have you monitored the temp until it crashed ?

 

The HDD has its own separate enclosure beside the OPI, so I don't think it has too much affect on the SoC's temperature.

If one can believe the RPi-Monitor's temp data, the SoC's temp is between 35-45°C. As far as I know, that's not considered high.

 

That's a good idea. First you should try to install RPi-Monitor with our H3 adoptions (sudo armbianmonitor -r). This adds monitoring to the board but it would also be a good idea to change mount options in /etc/fstab (since in case of crashes otherwise the most interesting data will be missing since Armbian comes with a default 600 second commit interval to minimize write activity to SD card).

 

To increase VDD_CPUX voltage use bin2fex/fex2bin with script.bin and increase every voltage value by 40mV: https://github.com/igorpecovnik/lib/blob/master/config/fex/orangepipc.fex#L740-L753 (requires a reboot of course)

 

I've increased the voltage as you suggested and the stability greatly improved. During a few hours of testing sadly it rebooted a twice, but now I know how to fine-tune the voltage values so I'll play around with them.

 

Another strange thing, my board doesn't seem to be able to swap. I tried to build a RethinkDB on it and it's recommended to have 1G of swap available. So I created but the build ran out of memory and the oom-killer did its job. I noticed that the default swappiness value is 0, so I increased it all the way to 60, but my board instead of swapping (checked with vmstat, it swaps literally nothing), runs out of memory. Any idea what I missed?

Share this post


Link to post
Share on other sites

I've increased the voltage as you suggested and the stability greatly improved. During a few hours of testing sadly it rebooted a twice, but now I know how to fine-tune the voltage values so I'll play around with them.

 

Do you remember which cpufreq governor the loboris image used? In case it was performance then you fried your H3 all the time at 1.5V (which is exactly 0.1V above maximum voltage according to H3's data sheet).

 

Regarding swap I also noticed oom-killer behaviour but gave up even thinking about since our hope was mainline kernel all the time to be able to drop this smelly Android kernel we're dealing with on H3 boards rather sooner than later :) 

Share this post


Link to post
Share on other sites
8 8