why eclipse-temurin official did not have OpenJ9 docker image - docker

Because OpenJ9 could save 30% memory usage, I use OpenJ9 in my project. Now the AdoptJDKOfficial docker image did not maintain in the furture. Today I tried to migration my project from AdoptJDK docker image to eclipse-temurin, but I did not found any docker image about OpenJ9. I am seaching from internet and somebody told that the license problem, is there possible to use OpenJ9 in the furture? why did not support OpenJ9 in the
eclipse-temurin official? I search from internet but did found any explain about this.

TLDR: Look for Semeru instead of Temurin.
As you can see on the AdoptOpenJDK blog
OpenJ9 builds
Part of Eclipse’s agreement governing the use of the Oracle Java SE TCK,
requires that Adoptium does not release OpenJ9-based or GraalVM-based
runtimes. We know that OpenJ9 builds were very popular at AdoptOpenJDK,
and we are delighted to report that IBM has stepped in to provide
equivalent builds directly from their website.
Adoptium has plans to distribute multiple vendor builds of OpenJDK
in the near future, so keep an eye on the Adoptium blog site for more
information about that exciting adventure.
So what you are looking for isn't a temurin docker immage, but a semeru docker image. Semeru being the name of IBM's equivalent to Temurin with OpenJ9 (the version the AdoptOpenJDK blog talked about).
Both can be installed/managed e.g. via SDKMAN.

Related

Elastic Search Docker Image License

What is the license of ElasticSearch docker images? It is said that binary distributions are Elastic Licensed. See Elastic FAQ But what is the condition for docker images from Docker Hub. So is the license constraint for 6.8.23 and 8.3.3 docker image are same and it is Elastic License? Or 8.3.3 is with the Elastic License and 6.8.23 with Apache 2.0.
If docker images are built with source code compiled then they should be Apache 2.0 licensed depending on the version. If they are built with the binary versions then any docker image is subject to the Elastic License I guess. Any clarifications will be much appreciated.
if you look in the docker files you can see that they are built with binaries, specifically the tar.gz, and not from source
https://github.com/elastic/dockerfiles also mentions;
This software is governed by their applicable licenses, and includes the full set of free features.
to your point, yes, it will depend on what version you are running as to what license applies
As #Mark Walkom mentioned the docker image at the Docker hub is created from the tar.gz. But I checked the inside of provided by the Elastic. The license file for the elastic itself is Apache 2.0. I used the image docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.23.
But when I check the non oss version it is not Apache, it is ELv1 probably. So I deduce that this oss docker image can be used with the Apache 2.0 license.

Is Docker-ized dev envoirment good for maintaining legacy software?

Let's say I have old, unmaintained application that lives on a VPS (i.e. Symfony 3 PHP app that relies on PHP 5).
If some changes are needed I have to clone this app to my desktop, build it, change and re-deploy. As time goes, recreating desktop dev environment gets harder - in this example I can't simply build the app as I use PHP7 in my CLI that breaks building process.
I tried to dockerize the app, so I added Ubuntu 18 to my docker-compose file... and it doesn't work as latest Ubuntu that has PHP5 support is 14.04. 14.04 is also the oldest (official) version available on DockerHub. But will it be still available in 3 years? If not, Docker won't build a container.
So, my question is: is Docker a right tool to solve described problem at all?
If so, should I backup docker images described that my build relies on?
If not, beside proper maintenance, what tool is better?
You can install PHP5 in newer ubuntu versions, but it means adding an external repository.
You could also create your own docker image, containing only the libraries you want. If so, I'd advise to try and use alpine as a base image. There is a bit of a learning curve to adapt, but once you do it you'll have a small image tailored to your needs.
Given that containers allow you to isolate processus and conf with minimal footprint compared to a VM, I think it is the best option. Tailoring and maintaining your own image is not that expensive in terms of maintenance if you document it correctly, and it will allow you to always have a system 'maintaining' all your precise requirements.

What is the exact difference between Docker EE (Enterprise Edition), Docker CE (Community Edition) and Docker (Custom Support)

Docker installation guides does contain three different ways of installing Docker. I want to know the exact difference between the three components.
Docker CE (Community Edition) is the simple classical OSS (Open Source Software) Docker Engine.
Docker EE (Enterprise Edition) is Docker CE with certification on some systems and support by Docker Inc.
Docker CS (Commercially Supported) is kind of the old bundle version of Docker EE for versions <= 1.13.
Take a look at this blog post and this other one about Docker CE & Docker EE.
"What is Docker Enterprise Edition?
Docker Enterprise Edition comes in three versions: basic, standard and advanced. The Basic edition comes with the Docker platform, support and certification, while the Standard and Advanced version add additional features such as container management (Docker Datacenter) and Docker Security Scanning.
Docker EE is supported by Alibaba, Canonical, HPE, IBM, Microsoft and by a network of regional partners. Those who want to test Docker EE can download a trial version for free from the official site.
Docker is also offering a certification program to help third-party vendors in ensuring their products work with Docker EE.
What is Docker Community Edition?
Docker Engine has been renamed to Docker Community Edition, and, as the name suggests, it’s a do-it-yourself, community supported version of Docker that’s available for free of cost.
The community edition will be available in two versions: Edge and Stable. Edge will be released each month with the latest features. Stable will be released on a quarterly basis. While Edge will receive security updates and bug fixes for the current release, the stable version will get similar updates for four months after the initial release. This update cycle will give users a big enough window to plan upgrades from older versions.
While the two versions are targeted at different audiences, there isn’t much, or any, difference at source code level. “Both Docker EE and CE are based on the open source Docker project, which is developed in the open with Docker’s community of partners and contributors, and this forms the open, modular core of all Docker CE and EE editions,” said Messina."
From CIO.com
Also, take a look at the resources here and the official Docker documentation.
TL;TR;
We are currently dealing with two editions of Docker: Docker Community Edition (CE) and Docker Enterprise Edition (EE).
Docker EE comes with additional features that can help enterprises launch, manage, and secure their containers more efficiently, but what is worth emphasizing is that the two editions offer the same core features.
The main differences are that Docker CE is a free to use for everybady and open source and, on the other hand, Docker EE in the basic plan costs $1,500 per node, per year...
Another important difference is the operating systems on which we can run them. Docker CE can run on Windows 10 and Mac, on Azure and AWS, as well as CentOS, Debian, Fedora, and Ubuntu and Docker EE can run on Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES), Oracle Linux, Ubuntu, Windows Server 2016, as well as Azure and AWS.
Thus, in most private and commercial cases of Docker use, Docker CE should be sufficient.
For an in-depth look at all the differences, I encourage you to visit:Docker Community Edition or Docker Enterprise Edition - Everything You Need to Know
Docker CE vs EE: An Overview
Docker CE is a free and open source containerization platform. It is a rebranded version of the Docker open source solution that has been freely available since the launch of Docker in 2013.
CE can run on Windows 10 and Mac, on Azure and AWS, as well as CentOS, Debian, Fedora, and Ubuntu. CE can be downloaded directly from the Docker Store.
Docker EE, on the other hand, is a premium version of CE. Docker EE is an integrated, fully supported, and certified container platform that runs on Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server (SLES), Oracle Linux, Ubuntu, Windows Server 2016, as well as Azure and AWS.
Docker CE vs EE: How They’re the Same
First things first, it’s important to note that Docker CE is not a ‘watered down’ version of Docker EE. Both CE and EE have the same core features and functions:
Both editions are updated quarterly (although Docker CE users can expect “Edge” updates, discussed further herein), and both are available on a wide range of popular operating systems and cloud infrastructures, giving enterprises the freedom to run containerized applications on their favorite infrastructure—without lock-in.
Docker CE vs EE: How They’re Different
While both editions offer the same core features, Docker EE comes with additional features that can help enterprises launch, manage, and secure their containers more efficiently.
Here’s a summary of what companies can do when using Docker Enterprise Edition:
Gain access to certified Docker images and plugins
View your container clusters in a single pane view
Access controls for cluster and image management
Receive official same-day support from Docker
Run vulnerability scans on your Docker images
Run Docker EE engine with FIPS 140-2 certification
Advanced image and container management, LDAP/AD user integration, and role-based access control (formerly available only through Docker Datacenter, which is now part of the Docker EE plan)
Continuous vulnerability monitoring and Docker Security Scanning (formerly available only through Docker Datacenter, which is now part of the Docker EE plan)
Understanding Docker’s Versioning Format
As you research Docker CE and Docker EE, you may wonder about the platform’s versioning format. On the release of both CE and EE, Docker decided to change the way they versioned their product. Before March 2017, the latest version of Docker that was available at the time was v1.13. After the rollout of CE and EE, the new version was referred to as 17.03.
From the outside, it seemed as if Docker had skipped past 16 versions, but in actuality, Docker had changed their versioning scheme to YY.MM (year and month), similar to the scheme used by Canonical for Ubuntu..
How Often Are Docker CE and Docker EE Updated?
Docker CE comes with two release channels: “edge” and “stable”.
The edge channel releases a new version every month, and you gain the advantage of getting new features with each release. As for the stable channel, a new release becomes available every quarter.
If you decide to go for the stable option, you will have to wait longer to get the new features; however, on the plus side, the stable channel is much easier to maintain since you only need to install an update every quarter, as previously mentioned. The edge channel is suitable for those who want access to the latest features quicker.
In terms of support for both channels, the edge channel only releases bug fixes and security patches during the version’s current month. The stable channel releases patches for security issues and bug fixes for 4 months after the initial release, giving users a one-month window to upgrade to the latest release while still receiving fixes.
With Docker EE, a new version is released every quarter, and each release is supported for a full calendar year. Both bug fixes and security patches are backported to all supported versions.
Source: Docker
Docker CE vs EE: Pricing
Docker CE is free to use and download. The overall experience of CE can be enhanced through a range of free and paid add-ons from Docker Cloud at your own discretion.
Docker EE is a premium version that is available through three pricing tiers:
Basic: With Basic Docker EE, you get the Docker platform for certified infrastructure, along with support from Docker Inc. You also gain access to certified Docker Containers and Docker Plugins from Docker Store.
Standard: Comes with the same features as the Basic tier but with added advanced image and container management (single pane view), LDAP/AD user integration, and role-based access control (Docker Datacenter).
Advanced: Comes with added Docker Security Scanning and continuous vulnerability monitoring.
The general pricing for each tier is usually based on cost per node per year:
Basic: $1,500 per node, per year with Business Critical support
Standard: $3,000 per node, per year for Business Critical support
Advanced: $3,500 per node, per year for Business Critical support
Docker EE is also available as a one-month free trial. To activate your Docker EE free trial subscription, log into The Docker Store and navigate to the Docker EE page.

Compile Tensorflow from source with Docker to get CPU speed up

I am looking for a way to set up or modify an existing Docker image for installing tensorflow that will install it such that the SSE4, AVX, AVX2, and FMA instructions can be utilized for CPU speed up. So far I have found how to install from source using bazel How to Compile Tensorflow... and CPU instructions not compiled.... Neither of these explain how to do this within Docker. So I think what I am looking for is what you need to add to an existing docker image that installs without these options so that you can get a compile version of tensorflow with the CPU options enabled. The existing docker images do not do this because they want the image to run on as many machines as possible. I am using Ubuntu 14.04 on linux PC. I am new to docker but have installed tensorflow and have it working without getting the CPU warnings I get when I use the docker images. I may not need this for speed, but I have seen posts that claim the speed up can be significant. I searched for existing docker images that do this and could not find anything. I need this to work with gpu so needs to be compatible with nvidia-docker.
I just found this docker support for bazel and it might provide an answer, however I do not understand it well enough to know for sure. I believe this is saying that you can not build tensorflow with bazel inside a Dockerfile. You have to build a Dockerfile using bazel. Is my understanding correct and is this the only way to get a docker image with tensorflow compiled from source? If so, I could still use help in how to do it and still get the other dependencies that I would get if using an existing docker image for tensorflow.
Dockerfiles that build with CPU support can be found here.
Hope that helps! Spent many a late night here on Stack Overflow and Github Issues and stuff. Now it's my turn to give back! :)
The GPU stuff in particular is really hairy - especially when enabling the XLA/JIT/AOT stuff as well as the Graph Transform Tools.
Lots of hacks embedded in my Dockerfiles. Feel free to review and ask me questions!
The contributing guidelines mention building TensorFlow from source with Docker to run the unit tests:
Refer to the
CPU-only developer Dockerfile and
GPU developer Dockerfile
for the required packages. Alternatively, use the said
Docker images, e.g.,
tensorflow/tensorflow:nightly-devel and tensorflow/tensorflow:nightly-devel-gpu
for development to avoid installing the packages directly on your system.

Step by Step Setup Guide to Neo4j Mazerunner in Windows

I would like to use the Spark-graphX packages available to Neo4j through Mazerunner, however I am an analyst and not a software person. I am running Windows 7 on my laptop and Neo4j 2.3.0, and would like a step-by-step guide explaining how I can set-up Mazerunner for both Community & Enterprise. There's a lot of mention of dockers and containers, and I have no idea what these are, or how to set them up. Simple instructions would be of sooo much help! :)
Docker is primarily Operating System Level Visualization technology designed to run on Unix based systems (Linux,Mac,FreeBSD). Luckily Docker provides a Windows version that sort of does the same thing on Unix.
What happens is, after you have installed Docker, it allows you to run what they call containers which are basically virtual machines on top of your host (Windows 7 Running Docker). This allows you to run services like Neo4j in an isolated environment. Docker also allows you to download and install pre-configured, pre-compiled images of operating systems that usually provide some sort of service or have some software pre-installed.
In your case, I believe all you have to do is:
First install Docker
Use "Docker Compose" to download and install the images.
Continue Reading the Tutorial as you have now installed the required docker images
Note: Some of the operations, like the one in Step 2 will require command-line access and Also the creation of a "docker-compose.yml" so, be sure to visit all the links I have provided. Spend a little time going through them and you should be alright.
PS: great blog. definitely bookmarking it!

Resources