In correlation with the end of life (EOL) date for MCR 19.03.8+, Mirantis stopped maintaining this
documentation version as of 2022-05-27. The latest MCR product documentation
is available here.
This documentation provides information on how to deploy Mirantis Container
Runtime (MCR). The documentation is intended to help operators to understand
the core concepts of the product.
The information provided in this documentation set is being constantly
improved and amended based on the feedback and kind requests from the
consumers of MCR.
In correlation with the end of life (EOL) date for MCR 19.03.8+, Mirantis stopped maintaining this
documentation version as of 2022-05-27. The latest MCR product documentation
is available here.
Mirantis Container Runtime (MCR) enables you to power your business-critical
applications with the industry-leading enterprise container engine. You can
run containers on any platform with a fully supported and highly secure
container runtime. MCR provides the core functionality and security compliance
needed to enable your container orchestration solution of choice with
certified proven support for both Kubernetes and Swarm. The most common
use cases include:
Container orchestration solution
Organisations often have unique container orchestration requirements and may
choose to utilise alternative systems to manage their containers. MCR provides
freedom to select the best orchestration solution for your needs whilst still
ensuring you have a secure, trusted, and supported container runtime to run
your mission-critical workloads.
Secure and validated containers
The challenges in ensuring that the software supply chain is secure does not
stop at the container orchestration solution. The key part of securing your
container solution is ensuring that only validated and trusted containers
can be deployed and run. MCR combined with Mirantis Secure Registry (MSR)
gives you the ability to validate and sign your container images to ensure
that only approved images can be run in your environment.
Secure validated encryption
Regulated industries need to meet federal regulations to ensure that
appropriate levels of encryption are enabled. MCR provides FIPS 140-2
Validated cryptography ensuring that you meet the highest standards
necessary to comply with the federal requirements.
Multiple operating systems and infrastructures
With the drive towards multi-cloud and hybrid cloud, computing organisations
need to support multiple operating systems on multiple platforms. MCR is
certified to run on multiple operating systems, including CentOS, RHEL,
Ubuntu, and Windows, for consistent runtime regardless of the platform.
In correlation with the end of life (EOL) date for MCR 19.03.8+, Mirantis stopped maintaining this
documentation version as of 2022-05-27. The latest MCR product documentation
is available here.
Mirantis Container Runtime (MCR) is a client-server application with these
major components:
A server which is a type of long-running program called a daemon process
(the dockerd command).
A REST API which specifies interfaces that programs can use to talk to the
daemon and instruct it what to do.
A command line interface (CLI) client (the docker command).
MCR can be installed on several Linux distros as well as on Windows.
For MCR to recognize your license, you must apply your customer license file
at runtime.
Warning
Users are not authorized to run MCR on production workloads without a valid
license. Refer to Mirantis Agreements and Terms for more information.
To make MCR aware of your license and entitlement, perform the following for
each node that will host MCR:
Download the license file.
License files purchased at the Mirantis web store are available using a
link in the confirmation email. Otherwise, contact Mirantis Sales and
Support to gain access to the file.
Apply the license file.
Platform
Applying the license
Linux distros
Determine the location of the data root directory. This
information is available in the daemon.json file associated
with MCR. Alternatively, you can specify the data root directory
using the --data-root flag at MCR start up. Note that
the default data-root directory is /var/lib/docker.
Copy the license file to the data root directory and name it
docker.lic. It is imperative that the license be readable by
the account/user that runs the docker daemon.
Windows servers
A license is not currently required for Windows systems, as
MCR Windows binaries installed through install.ps1 or MSFT one-get
provider are considered to be licensed.
Start MCR (or restart it, if MCR is already running).
Note
MKE, MSR, and Mirantis Container Cloud have implied MCR licenses.
There are two ways to install and upgrade Mirantis Container Runtime (MCR):
YUM repository: Set up a Docker repository and install Mirantis Container
Runtime from it. This is the recommended approach because installation
and upgrades are managed with YUM and easier to do.
RPM package: Download the RPM package, install it manually, and manage
upgrades manually. This is useful when installing Mirantis Container Runtime
on air-gapped systems with no access to the internet.
The Mirantis Container Runtime package is called docker-ee. Older
versions were called docker or docker-engine. Uninstall all
older versions and associated dependencies. The contents of
/var/lib/docker/ are preserved, including images, containers,
volumes, and networks.
The advantage of using a repository from which to install Mirantis Container
Runtime (or any software) is that it provides a certain level of automation.
RPM-based distributions such as CentOS, use a tool called YUM that work with
your repositories to manage dependencies and provide automatic updates.
The list returned depends on which repositories you enabled, and is
specific to your version of CentOS (indicated by .el7 in this
example).
Install a specific version by its fully qualified package name,
which is the package name (docker-ee) plus the version string
(2nd column) starting at the first colon (:), up to the first
hyphen, separated by a hyphen (-). For example,
docker-ee-19.03.8.
Docker is installed but not started. The docker group is created,
but no users are added to the group.
Start Docker:
sudosystemctlstartdocker
Verify that Mirantis Container Runtime is installed correctly by
running the hello-world image. This command downloads a test
image, runs it in a container, prints an informational message, and
exits:
sudodockerrunhello-world
Mirantis Container Runtime is installed and running. Use sudo to
run Docker commands.
Docker is installed but not started. The docker group is created,
but no users are added to the group.
Start Docker
sudosystemctlstartdocker
Verify that Mirantis Container Runtime is installed correctly by
running the hello-world image. This command downloads a test
image, runs it in a container, prints an informational message, and
exits:
sudodockerrunhello-world
Mirantis Container Runtime is installed and running. Use sudo to
run Docker commands.
By default, MCR automatically records and transmits data to Mirantis for
monitoring and analysis purposes. The data collected provides the Mirantis
Customer Success Organization with information that helps us to better
understand the operational use of MCR by our customers. It also provides key
feedback in the form of product usage statistics, which enable our product
teams to enhance Mirantis products and services.
To disable the telemetry function, set
features.telemetry to false in your /etc/docker/daemon.json file.
Change the setting to true to re-enable telemetry.
{"features":{"telemetry":false}}
Caution
To send the telemetry, verify that dockerd can resolve api.segment.io
and create a TCP (HTTPS) connection on port 443.
Install Mirantis Container Runtime for Oracle Linux¶
There are two ways to install and upgrade Mirantis Container Runtime (MCR).
YUM repository: Set up a Docker repository and install Mirantis Container
Runtime from it. This is the recommended approach because installation
and upgrades are managed with YUM and easier to do.
RPM package: Download the RPM package, install it manually, and manage
upgrades manually. This is useful when installing Mirantis Container Runtime
on air-gapped systems with no access to the internet.
The Mirantis Container Runtime package is called docker-ee. Older
versions were called docker or docker-engine. Uninstall all
older versions and associated dependencies. The contents of
/var/lib/docker/ are preserved, including images, containers,
volumes, and networks.
The advantage of using a repository from which to install Mirantis Container
Runtime (or any software) is that it provides a certain level of automation.
RPM-based distributions such as Oracle Linux, use a tool called YUM that work
with your repositories to manage dependencies and provide automatic updates.
The list returned depends on which repositories you enabled, and is
specific to your version of Oracle Linux (indicated by .el7 in this example).
Install a specific version by its fully qualified package name,
which is the package name (docker-ee) plus the version string
(2nd column) starting at the first colon (:), up to the first
hyphen, separated by a hyphen (-). For example,
docker-ee-18.09.1.
Docker is installed but not started. The docker group is created,
but no users are added to the group.
Start Docker:
sudosystemctlstartdocker
Verify that Mirantis Container Runtime is installed correctly by
running the hello-world image. This command downloads a test
image, runs it in a container, prints an informational message, and
exits:
sudodockerrunhello-world
Mirantis Container Runtime is installed and running. Use sudo to
run Docker commands.
Docker is installed but not started. The docker group is created,
but no users are added to the group.
Start Docker:
sudosystemctlstartdocker
Verify that Mirantis Container Runtime is installed correctly by
running the hello-world image. This command downloads a test
image, runs it in a container, prints an informational message, and
exits:
sudodockerrunhello-world
Mirantis Container Runtime is installed and running. Use sudo to
run Docker commands.
By default, MCR automatically records and transmits data to Mirantis for
monitoring and analysis purposes. The data collected provides the Mirantis
Customer Success Organization with information that helps us to better
understand the operational use of MCR by our customers. It also provides key
feedback in the form of product usage statistics, which enable our product
teams to enhance Mirantis products and services.
To disable the telemetry function, set
features.telemetry to false in your /etc/docker/daemon.json file.
Change the setting to true to re-enable telemetry.
{"features":{"telemetry":false}}
Caution
To send the telemetry, verify that dockerd can resolve api.segment.io
and create a TCP (HTTPS) connection on port 443.
You must delete any edited configuration files manually.
Install Mirantis Container Runtime for Red Hat Enterprise Linux¶
There are two ways to install and upgrade Mirantis Container Runtime (MCR).
YUM repository: Set up a Docker repository and install Mirantis Container
Runtime from it. This is the recommended approach because installation and
upgrades are managed with YUM and easier to do.
RPM package: Download the RPM package, install it manually, and manage
upgrades manually. This is useful when installing Mirantis Container Runtime
on air-gapped systems with no access to the internet.
Mirantis Container Runtime supports Red Hat Enterprise Linux 64-bit, versions
7.4 and higher running on x86_64. See the compatibility-matrix
for specific details.
On Red Hat Enterprise Linux, Mirantis Container Runtime supports the
overlay2 storage driver. The following limitations apply:
OverlayFS: If selinux is enabled, the
overlay2 storage driver is supported on RHEL 7.4 or higher.
If selinux is disabled, overlay2 is supported on RHEL 7.2 or higher
with kernel version 3.10.0-693 and higher.
With Mirantis Container Runtime license for versions 18.03 and later, Docker
provides FIPS 140-2 support in RHEL 7.3, 7.4 and 7.5. This includes a FIPS
supported cryptographic module. If the RHEL implementation already has FIPS
support enabled, FIPS is also automatically enabled in MCR. If
FIPS support is not already enabled in your RHEL implementation, see the Red
Hat Product Documentation for instructions on how to enable it.
To verify the FIPS 140-2 module is enabled in the Linux kernel, confirm
the file /proc/sys/crypto/fips_enabled contains 1.
cat/proc/sys/crypto/fips_enabled1
Note
FIPS is only supported in Mirantis Container Runtime.
MKE and MSR currently do not have support for FIPS 140-2.
You can override FIPS 140-2 compliance on a system that is not in FIPS
140-2 mode. Note, this does not change FIPS 140-2 mode on the
system. To override the FIPS 140-2 mode, follow ths steps below.
Create a file called
/etc/systemd/system/docker.service.d/fips-module.conf. Add the
following:
[Service]Environment="DOCKER_FIPS=1"
Reload the Docker configuration to systemd.
sudosystemctldaemon-reload
Restart the Docker service as root.
sudosystemctlrestartdocker
To confirm Docker is running with FIPS 140-2 enabled, run the
dockerinfo command.
If the system has the FIPS 140-2 cryptographic module installed on the
operating system, it is possible to disable FIPS 140-2 compliance.
To disable FIPS 140-2 in Docker but not the operating system, set the
value DOCKER_FIPS=0 in the
/etc/systemd/system/docker.service.d/fips-module.conf.
The Mirantis Container Runtime package is called docker-ee. Older
versions were called docker or docker-engine. Uninstall all
older versions and associated dependencies. The contents of
/var/lib/docker/ are preserved, including images, containers,
volumes, and networks.
The advantage of using a repository from which to install Mirantis Container
Runtime (or any software) is that it provides a certain level of automation.
RPM-based distributions such as Red Hat Enterprise Linux, use a tool called YUM
that work with your repositories to manage dependencies and provide automatic
updates.
Also, store your OS version string in /etc/yum/vars/dockerosversion.
Most users should use 7 or 8, but you can also use the more
specific minor version, starting from 7.2.
The list returned depends on which repositories you enabled, and is
specific to your version of Red Hat Enterprise Linux (indicated by
.el7 in this example).
Install a specific version by its fully qualified package name,
which is the package name (docker-ee) plus the version string
(2nd column) starting at the first colon (:), up to the first
hyphen, separated by a hyphen (-). For example,
docker-ee-18.09.1.
Docker is installed but not started. The docker group is created,
but no users are added to the group.
Start Docker:
sudosystemctlstartdocker
Verify that Mirantis Container Runtime is installed correctly by
running the hello-world image. This command downloads a test
image, runs it in a container, prints an informational message, and
exits:
sudodockerrunhello-world
Mirantis Container Runtime is installed and running. Use sudo to run Docker
commands.
To manually install Mirantis Container Runtime, download the .rpm file for
your release. You need to download a new file each time you want to upgrade.
Alternately, obtain that package manually from Red Hat. There is no way
to publicly browse this repository.
Go to repos.mirantis.com in your browser. Navigate to rhel/. Choose
your Red Hat Enterprise Linux version, architecture, and Docker version.
Download the .rpm file from the Packages directory.
If you have trouble with selinux using the packages under the 7
directory, try choosing the version-specific directory instead, such as
7.3.
Install MCR, changing the path below to the path where you downloaded the
Docker package.
Docker is installed but not started. The docker group is created, but no
users are added to the group.
Start Docker:
sudosystemctlstartdocker
Verify that Mirantis Container Runtime is installed correctly by running
the hello-world image. This command downloads a test image, runs it in a
container, prints an informational message, and exits:
sudodockerrunhello-world
Mirantis Container Runtime is now installed and running. Make sure to use
sudo to run Docker commands (refer to the Docker documentation for
Linux postinstall for
information on how to allow non-privileged users to run Docker commands.
RHEL 8
Go to repos.mirantis.com in your browser. Navigate to rhel/. Choose
your Red Hat Enterprise Linux version, architecture, and Docker version.
Download the .rpm file from the Packages directory.
If you have trouble with selinux using the packages under the 8
directory, try choosing the version-specific directory instead.
Install Mirantis Container Runtime, changing the path below to the path
where you downloaded the Docker package.
Docker is installed but not started. The docker group is created, but no
users are added to the group.
Start Docker:
sudosystemctlstartdocker
Verify that Mirantis Container Runtime is installed correctly by running
the hello-world image. This command downloads a test image, runs it in a
container, prints an informational message, and exits:
sudodockerrunhello-world
Mirantis Container Runtime is now installed and running. Make sure to use
sudo to run Docker commands (refer to the Docker documentation for Linux
postinstall for information on how to allow non-privileged users to run
Docker commands.
By default, MCR automatically records and transmits data to Mirantis for
monitoring and analysis purposes. The data collected provides the Mirantis
Customer Success Organization with information that helps us to better
understand the operational use of MCR by our customers. It also provides key
feedback in the form of product usage statistics, which enable our product
teams to enhance Mirantis products and services.
To disable the telemetry function, set
features.telemetry to false in your /etc/docker/daemon.json file.
Change the setting to true to re-enable telemetry.
{"features":{"telemetry":false}}
Caution
To send the telemetry, verify that dockerd can resolve api.segment.io
and create a TCP (HTTPS) connection on port 443.
To install Mirantis Container Runtime, you need the 64-bit version of SLES
12.x, running on the x86_64 architecture. Mirantis Container Runtime is not
supported on OpenSUSE.
The only supported storage driver for Mirantis Container Runtime on SLES
is Btrfs, which is used by default if the underlying filesystem
hosting /var/lib/docker/ is a BTRFS filesystem.
Note
IBM Z (s390x) is supported for Mirantis Container Runtime 17.06.xx only.
Docker creates a DOCKER iptables chain when it starts. The SUSE
firewall may block access to this chain, which can prevent you from
running containers with published ports. You may see errors such as the
following:
WARNING: IPv4 forwarding is disabled. Networking will not work.
docker: Error response from daemon: driver failed programming external
connectivity on endpoint adoring_ptolemy
(0bb5fa80bc476f8a0d343973929bb3b7c039fc6d7cd30817e837bc2a511fce97):
(iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 80 -j DNAT --to-destination 172.17.0.2:80 ! -i docker0: iptables: No chain/target/match by that name.
(exit status 1)).
If you see errors like this, adjust the start-up script order so that
the firewall is started before Docker, and Docker stops before the
firewall stops. See the SLES documentation on init script
order.
Older versions of Docker were called docker or docker-engine. If
you use OS images from a cloud provider, you may need to remove the
runc package, which conflicts with Docker. If these are installed,
uninstall them, along with associated dependencies.
sudozypperrmdockerdocker-enginerunc
If removal of the docker-engine package fails, use the following
command instead:
sudorpm-edocker-engine
It’s OK if zypper reports that none of these packages are installed.
The contents of /var/lib/docker/, including images, containers,
volumes, and networks, are preserved. The Mirantis Container Runtime
package is now called docker-ee.
By default, SLES formats the / filesystem using Btrfs, so most
people do not not need to do the steps in this section. If you use OS
images from a cloud provider, you may need to do this step. If the
filesystem that hosts /var/lib/docker/ is not a BTRFS
filesystem, you must configure a BTRFS filesystem and mount it on
/var/lib/docker/.
Check whether / (or /var/ or /var/lib/ or
/var/lib/docker/ if they are separate mount points) are formatted
using Btrfs. If you do not have separate mount points for any of
these, a duplicate result for / is returned.
df-T//var/var/lib/var/lib/docker
You need to complete the rest of these steps only if one of thefollowing is true:
You have a separate /var/ filesystem that is not formatted
with Btrfs
You do not have a separate /var/ or /var/lib/ or
/var/lib/docker/ filesystem and / is not formatted with
Btrfs
If /var/lib/docker is already a separate mount point and is not
formatted with Btrfs, back up its contents so that you can restore
them after step 3.
Format your dedicated block device or devices as a Btrfs filesystem.
This example assumes that you are using two block devices called
/dev/xvdf and /dev/xvdg. Make sure you are using the right
device names.
Important
Double-check the block device names because this is a destructive
operation.
sudomkfs.btrfs-f/dev/xvdf/dev/xvdg
There are many more options for Btrfs, including striping and RAID. See the
Btrfs documentation.
Mount the new Btrfs filesystem on the /var/lib/docker/ mount
point. You can specify any of the block devices used to create the
Btrfs filesystem.
sudomount-tbtrfs/dev/xvdf/var/lib/docker
Don’t forget to make the change permanent across reboots by adding an
entry to /etc/fstab.
If /var/lib/docker previously existed and you backed up its
contents during step 1, restore them onto /var/lib/docker.
You can install Mirantis Container Runtime in different ways, depending
on your needs.
Most users set up Docker’s repositories and install from
them, for ease of installation and upgrade tasks. This is the
recommended approach.
Some users download the RPM package and install it manually and
manage upgrades completely manually. This is useful in situations
such as installing Docker on air-gapped systems with no access to the
internet.
Before you install Mirantis Container Runtime for the first time on a
new host machine, you need to set up the Docker repository. Afterward,
you can install and update Docker from the repository.
If this is the first time you have refreshed the package index since
adding the Docker repositories, you are prompted to accept the GPG
key, and the key’s fingerprint is shown. Verify that the fingerprint
matches 77FEDA131A831D29A418D3E899E5FF2E76682BC9 and if so, accept the key.
Install the latest version of Mirantis Container Runtime and
containerd, or go to the next step to install a specific version.
On production systems, you should install a specific version of
Mirantis Container Runtime instead of always using the latest. List
the available versions. The following example only lists binary
packages and is truncated. To also list source packages, omit the
-tpackage flag from the command.
zyppersearch-s--match-exact-tpackagedocker-ee
The contents of the list depend upon which repositories you have
enabled. Choose a specific version to install. The third column is
the version string. The fifth column is the repository name, which
indicates which repository the package is from and by extension its
stability level. To install a specific version, append the version
string to the package name and separate them by a hyphen (-):
Docker is installed but not started. The docker group is created,
but no users are added to the group.
Configure Docker to use the Btrfs filesystem. This is only required
ifthe ``/`` filesystem is not using BTRFS. However, explicitly
specifying the storage-driver has no harmful side effects.
Edit the file /etc/docker/daemon.json (create it if it does not
exist) and add the following contents:
{"storage-driver":"btrfs"}
Save and close the file.
Start Docker.
sudoservicedockerstart
Verify that Docker is installed correctly by running the
hello-world image.
sudodockerrunhello-world
This command downloads a test image and runs it in a container. When
the container runs, it prints an informational message and exits.
Mirantis Container Runtime is installed and running. You need to use
sudo to run Docker commands.
If you cannot use the official Docker repository to install Mirantis Container
Runtime, you can download the .rpm file for your release and install it
manually. You need to download a new file each time you want to upgrade Docker.
Go to sles/12.3/ choose the directory corresponding to your architecture
and desired Mirantis Container Runtime version. Download the .rpm file
from the Packages directory.
Docker is installed but not started. The docker group is created,
but no users are added to the group.
Configure Docker to use the Btrfs filesystem. This is only required
ifthe ``/`` filesystem is not using Btrfs. However, explicitly
specifying the storage-driver has no harmful side effects.
Edit the file /etc/docker/daemon.json (create it if it does not
exist) and add the following contents:
{"storage-driver":"btrfs"}
Save and close the file.
Start Docker.
sudoservicedockerstart
Verify that Docker is installed correctly by running the
hello-world image.
sudodockerrunhello-world
This command downloads a test image and runs it in a container. When
the container runs, it prints an informational message and exits.
Mirantis Container Runtime is installed and running. You need to use
sudo to run Docker commands.
To upgrade Mirantis Container Runtime, download the newer package file
and repeat the installation procedure,
using zypperupdate instead of zypperinstall, and pointing to
the new file.
By default, MCR automatically records and transmits data to Mirantis for
monitoring and analysis purposes. The data collected provides the Mirantis
Customer Success Organization with information that helps us to better
understand the operational use of MCR by our customers. It also provides key
feedback in the form of product usage statistics, which enable our product
teams to enhance Mirantis products and services.
To disable the telemetry function, set
features.telemetry to false in your /etc/docker/daemon.json file.
Change the setting to true to re-enable telemetry.
{"features":{"telemetry":false}}
Caution
To send the telemetry, verify that dockerd can resolve api.segment.io
and create a TCP (HTTPS) connection on port 443.
Uninstall the Mirantis Container Runtime package using the command
below.
sudozypperrmdocker-ee
Images, containers, volumes, or customized configuration files on
your host are not automatically removed. To delete all images,
containers, and volumes.
sudorm-rf/var/lib/docker/*
If you used a separate BTRFS filesystem to host the contents of
/var/lib/docker/, you can unmount and format the Btrfs
filesystem.
You must delete any edited configuration files manually.
For Ubuntu 16.04 and higher, the Linux kernel includes support for overlay2,
and Mirantis Container Runtime uses it as the default storage driver. If you
need to use aufs instead, it must be manually configured.
Mirantis Container Runtime can be installed either by using Mirantis
repositories, or by downloading and installing the DEB package and thereafter
manually managing all upgrades. The Mirantis repository method is recommended,
for the ease it lends in terms of both installation and upgrade tasks. The more
manual DEB package approach, however, is useful in certain situations, such as
installing MCR on air-gapped system that have no access to the Internet.
Continue from this point if you are using Mirantis repositories on Ubuntu, or
to install from a Debian package go to
Install from a Debian package.
Verify that you now have the key with the fingerprint
DD911E995A64A202E85907D6BC14F10B6D085F96, by searching
for the last eight characters of the fingerprint. Use the command
as-is. It works because of the variable you set earlier.
Install the latest version of Mirantis Container Runtime and
containerd, or go to the next step to install a specific version. Any
existing installation of MCR is replaced.
If you have multiple Mirantis repositories enabled, installing or
updating without specifying a version in the apt-getinstall
or apt-get update command always installs the highest possible
version, which may not be appropriate for your stability needs.
On production systems, you should install a specific version of
Mirantis Container Runtime instead of always using the latest. The
following output is truncated.
The contents of the list depend upon which repositories are enabled,
and are specific to your version of Ubuntu (indicated by the
focal suffix on the version, in this example). Choose a specific
version to install. The second column is the version string. The
third column is the repository name, which indicates which repository
the package is from and by extension its stability level. To install
a specific version, append the version string to the package name and
separate them by an equals sign (=).
Verify that MCR is installed correctly by running the hello-world
image.
sudodockerrunhello-world
This command downloads a test image and runs it in a container. When
the container runs, it prints an informational message and exits.
Mirantis Container Runtime is installed and running. The docker
group is created but no users are added to it. You need to use sudo
to run MCR commands.
If you cannot use the Mirantis repository to install Mirantis Container
Runtime, you can download the .deb files for your release and install them
manually. You need to download a new file or set of files each time you want to
upgrade Mirantis Container Runtime.
Go to /ubuntu/dists/bionic/pool/stable-<VERSION>/amd64/ and download
the .deb file for the Ubuntu release and architecture you want to
install.
Note
Starting with 19.03, you have to download three .deb files.
They are docker-ee-cli_<version>.deb,
containerd.io_<version>.deb, and docker-ee_<version>.deb.
Install MCR, changing the path below to the path where you
downloaded the Mirantis Container Runtime package.
Verify that MCR is installed correctly by running the hello-world image.
sudodockerrunhello-world
This command downloads a test image and runs it in a container. When
the container runs, it prints an informational message and exits.
Mirantis Container Runtime is installed and running. The docker group is
created but no users are added to it. You need to use sudo to run MCR
commands.
By default, MCR automatically records and transmits data to Mirantis for
monitoring and analysis purposes. The data collected provides the Mirantis
Customer Success Organization with information that helps us to better
understand the operational use of MCR by our customers. It also provides key
feedback in the form of product usage statistics, which enable our product
teams to enhance Mirantis products and services.
To disable the telemetry function, set
features.telemetry to false in your /etc/docker/daemon.json file.
Change the setting to true to re-enable telemetry.
{"features":{"telemetry":false}}
Caution
To send the telemetry, verify that dockerd can resolve api.segment.io
and create a TCP (HTTPS) connection on port 443.
Images, containers, volumes, or customized configuration files on
your host are not automatically removed. Run the following command to
delete all images, containers, and volumes.
sudorm-rf/var/lib/docker
You must delete any edited configuration files manually.
Mirantis Container Runtime (MCR) enables native Docker containers on Windows
Server. Windows Server 2019 and later versions are supported. The Mirantis
Container Runtime installation package includes everything you need to run
Docker on Windows Server. This topic describes pre-install considerations, and
how to download and install Mirantis Container Runtime.
Mirantis provides a helper script to ease MCR installation on a Windows Server
machine. The script uses default values, thus allowing it to be run without
configuration. You can, however, override the default values with script
parameters and env variables. Parameter values take precedence over env
variables. Both take precedence over inbuilt default values.
The helper script needs to be executed from an elevated command prompt. If you
want to change the default daemon values, make sure to have the alternative
cofigurations and the related collateral in-place prior to executing the
script. For example, if you want to enable TLS, store the certificates and
write the daemon configuration file before invoking the script.
The installer will issue a prompt, should it require a reboot.
Test your MCR installation by running the hello-world container.
dockerrunhello-world:nanoserver
The container starts, prints the HellofromDocker! message, and then exits.
Unable to find image 'hello-world:nanoserver' locally
nanoserver: Pulling from library/hello-world
bce2fbc256ea: Pull complete
3ac17e2e6106: Pull complete
8cac44e17f16: Pull complete
5e160e4d8db3: Pull complete
Digest: sha256:25eac12ba40f7591969085ab3fb9772e8a4307553c14ea72d0e6f98b2c8ced9d
Status: Downloaded newer image for hello-world:nanoserver
Hello from Docker!
This message shows that your installation appears to be working correctly.
MCR provides FIPS 140-2 support in Windows Server, which includes a FIPS
supported cryptographic module. If the Windows implementation already has FIPS
support enabled, FIPS is automatically enabled in MCR.
Note
FIPS 140-2 is only supported in MCR. MKE and MSR currently do not support FIPS 140-2.
To enable FIPS 140-2 compliance on a system that is not in FIPS 140-2
mode, run the following command in PowerShell:
You can also enable FIPS 140-2 mode using the Windows Registry. To update
the pertinent registry key, execute the following PowerShell command as
an Administrator:
To confirm Docker is running with FIPS-140-2 enabled, run the
docker info.
Labels:com.docker.security.fips=enabled
Note
FIPS-140-2 compliance can be disabled if the FIPS-140-2 cryptographic
module is installed on the operating system. To disable FIPS-140-2 in
Docker but not the operating system, set the value "DOCKER_FIPS","0" in
[System.Environment].\
If your hardware is air-gapped you can still install MCR. To do so, download
the installer and copy the files to the air-gapped machine (the default
installation assumes that the zipped files and script are in the same
location).
On any Internet connected Powershell terminal: download the install.ps1
file and run it to download the installer .zip files
Run the install.ps1 with the DownloadOnly parameter. As per the
parameter name, this action only downloads the zip file (no installation is
performed).
.\install.ps1-DownloadOnly
Copy the install.ps1 file and the installation zip file over to the
air-gapped machine and run the install with the -Offline parameter.
The installation script uses the parameters detailed below.
Parameter
Description
.PARAMETER DownloadUrl
[Alternately specified by $Env:DOWNLOAD_URL]
Specifies an alternative repository in which to download container
runtime packages.
.PARAMETER Channel
[Alternately specified by $Env:CHANNEL]
Specifies which channel to use for picking the binaries (examples
include stable and test). Default: stable.
.PARAMETER DockerVersion
[Alternately specified by $Env:DOCKER_VERSION]
Specifies the version number for the DockerEE binaries to install.
The latest version is the default.
.PARAMETER ContainerdVersion
[Alternately specified by $Env:CONTAINERD_VERSION]
Specifies the version number for the containerd binaries to install
The latest version is the default.
.PARAMETER DryRun
If specified, list different steps to use without actually invoking
those steps.
.PARAMETER Uninstall
If specified, uninstalls all packages. This includes
unregistering the corresponding services and removing paths
for the package from the registry.
All other script parameters (except DryRun and DestPath) are
ignored if this switch is specified. Common parameters such
as -Verbose are still honored.
.PARAMETER Ver
Print version info for the script and exit.
.PARAMETER NoServiceStarts
If specified, services are not started on successful install.
By default, all services installed by the script are
left in a running state before exit.
.PARAMETER DestPath
Path to the directory under which binaries will be installed.
Default: %PROGRAMDATA%
.PARAMETER OfflinePackagesPath
The folder for airgap/offline scenarios. For use when the
offline or DownloadOnly parameters are specified. Used to
either save the downloaded packages for later offline use
or for pointing to previously downloaded packages for
offline install.
.PARAMETER Offline
Install packages in offline/airgap mode. By default the
current directory is used to locate previously
downloaded packages, a setting that can be overridden by using
the OfflinePackagesPath parameter.
.PARAMETER DownloadOnly
Download and save packages for later offline/airgap install.
This is often arises if you have ming/mingw64 as a part of your PATH env
variable. As a workaround, ensure that the offending software is
not on the PATH and run the script again.
The script supports airgap functionality by providing access to
download packages while online, as well as to install those selfsame
packages while offline.
For downloads, please ensure that the script has access to the internet. Use
the -DownloadOnly parameter. By default the script will use the current
directory to store the packages after download, a setting that can be
changed by specifying the path explicitly with the -OfflinePackagesPath
parameter.
For offline/airgap install, please use the -Offline parameter. By
default the script searches for pacakages in the current directory, a
setting that can be changed by specifying the -OfflinePackagesPath
parameter.
While downloading using -DownloadOnly parameter, confirm that the
download path is accessible to the script, especially if you run the
script without administrative rights.
The following is required so that the script can be invoked with named
parameters (for example, -ContainerdVersion1.3.4...). If a parameter is
used, its type is checked by powershell - we give a higher precedence to the
parameters specified in this manner versus the same value specified by env
vars.
Parameters received at invocation time. Some of these values are merged
with values specified by env vars - see reconcileParams. Others are used as-is.
By default, MCR automatically records and transmits data to Mirantis for
monitoring and analysis purposes. The data collected provides the Mirantis
Customer Success Organization with information that helps us to better
understand the operational use of MCR by our customers. It also provides key
feedback in the form of product usage statistics, which enable our product
teams to enhance Mirantis products and services.
To disable the telemetry function, set
features.telemetry to false in your /etc/docker/daemon.json file.
Change the setting to true to re-enable telemetry.
{"features":{"telemetry":false}}
Caution
To send the telemetry, verify that dockerd can resolve api.segment.io
and create a TCP (HTTPS) connection on port 443.
Customers who use MCR with Kubernetes directly (without MKE) must use a
plugin maintained by Kubernetes called dockershim for Kubernetes 1.23 and
below or a plugin maintained by Mirantis called cri-docker (included in
MCR) for Kubernetes 1.24 and above.
In correlation with the end of life (EOL) date for MCR 19.03.8+, Mirantis stopped maintaining this
documentation version as of 2022-05-27. The latest MCR product documentation
is available here.
Click any product component license below to download a text
file of that license to your local system.
In correlation with the end of life (EOL) date for MCR 19.03.8+, Mirantis stopped maintaining this
documentation version as of 2022-05-27. The latest MCR product documentation
is available here.
Subscriptions for MKE, MSR, and MCR provide access to
prioritized support for designated contacts from your company, agency, team,
or organization. Mirantis service levels for MKE, MSR, and MCR are
based on your subscription level and the Cloud (or cluster) you designate in
your technical support case. Our support offerings are described
here,
and if you do not already have a support subscription, you may inquire about
one via the contact us form.
Mirantis’ primary means of interacting with customers who have technical
issues with MKE, MSR, or MCR is our
CloudCare Portal. Access to our
CloudCare Portal requires prior authorization by your company, agency, team,
or organization, and a brief email verification step. After Mirantis sets up
its back end systems at the start of the support subscription, a designated
administrator at your company, agency, team or organization, can designate
additional contacts. If you have not already received and verified an
invitation to our CloudCare Portal, contact your local designated
administrator, who can add you to the list of designated contacts.
Most companies, agencies, teams, and organizations have multiple designated
administrators for the CloudCare Portal, and these are often the persons most
closely involved with the software. If you don’t know who is a
local designated administrator, or are having problems accessing the
CloudCare Portal, you may also send us an email.
Once you have verified your contact details via our verification email, and
changed your password as part of your first login, you and all your colleagues
will have access to all of the cases and resources purchased. We
recommend you retain your ‘Welcome to Mirantis’ email, because it contains
information on accessing our CloudCare Portal, guidance on
submitting new cases, managing your resources, and so forth. Thus, it can
serve as a reference for future visits.
We encourage all customers with technical problems to use the
knowledge base, which you can access on the Knowledge tab
of our CloudCare Portal. We also encourage you to review the
MKE, MSR, and MCR products documentation which includes release notes,
solution guides, and reference architectures. These are
available in several formats. We encourage use of
these resources prior to filing a technical case; we may already have fixed
the problem in a later release of software, or provided a solution or
technical workaround to a problem experienced by other customers.
One of the features of the CloudCare Portal is the ability to associate
cases with a specific MKE cluster; these are known as “Clouds” in
our portal. Mirantis has pre-populated customer accounts with one or more
Clouds based on your subscription(s). Customers may also create and manage
their Clouds to better match how you use your subscription.
We also recommend and encourage our customers to file new cases based on a
specific Cloud in your account. This is because most Clouds also have
associated support entitlements, licenses, contacts, and cluster
configurations. These greatly enhance Mirantis’ ability to support you in a
timely manner.
You can locate the existing Clouds associated with your account by using the
“Clouds” tab at the top of the portal home page. Navigate to the appropriate
Cloud, and click on the Cloud’s name. Once you’ve verified that Cloud
represents the correct MKE cluster and support entitlement, you
can create a new case via the New Case button towards the top of the
Cloud’s page.
One of the key items required for technical support of most MKE, MSR, and MCR
cases is the support dump. This is a compressed archive of configuration data
and log files from the cluster. There are several ways to gather a support
dump, each described in the paragraphs below. After you have collected a
support dump, you can upload the dump to your new technical support case
by following
this guidance
and using the “detail” view of your case.
The support dump only contains logs for the node where you’re running the
command. If your MKE is highly available, you should collect support dumps
from all of the manager nodes.
To submit the support dump to Mirantis Customer Support, add the
--submit option to the support command. This will send
the support dump along with the following information:
In correlation with the end of life (EOL) date for MCR 19.03.8+, Mirantis stopped maintaining this
documentation version as of 2022-05-27. The latest MCR product documentation
is available here.
This document describes the latest changes, enhancements, known issues, and
fixes for Mirantis Container Runtime (MCR) for versions 19.03.x.
MCR 19.03.23 is the final patch release for MCR 19.03.x as that version
of the software reached end of life (EOL) status on 2022-05-27. In
correlation, Mirantis has halted maintenance of the MCR 19.03.x
documentation set.
The removal of the ipa SELinux module from the base system configuration
of Red Hat Enterprise Linux 8.4 stripped container_exec_t processes
inside containers of their ability to read pidfile-labeled files,
including conttainer_var_run_t.
Workaround:
Workflows that rely on bind mounting the Docker socket in a container running
on RHEL 8.4 or later should mount the socket with --security-opt=disable
or an SELinux mount option, such as Z.
Fixed an issue wherein using a JWT license with an MKE instance that manages
MCR caused MCR to log error messages (FIELD-4201).
Fixed an issue wherein the docker info and
docker version commands did not properly display the MCR license
information on nodes that do not belong to a swarm (FIELD-4180).
MCR now accepts only JWT licenses. To upgrade MCR, customers using a Docker
Hub-issued license must first replace it with the new license version
(ENGINE-486).
Centos and RHEL 7.x kernels may experience memory exhaustion due to slab
cache usage. Because this is a kernel feature, the issue cannot be resolved
with MCR code.
Workarounds:
(Recommended) Update to a kernel that supports setting
cgroups.memory=nokmem and apply the change (for customers using Centos
or RHEL 7.7 and above).
Increase the memory available to the machine for slab usage.
Upgrading to the product combination [MKE 3.3.x + MCR 19.03.x + SLES 15
SP3/RHEL 8] can fail due to nodes that are not ready and MKE system
containers that do not start. To resolve this problem, refer to Avoid
firewall conflicts.
In developing MCR 19.03.x, Mirantis has been transitioning from legacy
Docker Hub-issued licenses to JWT licenses, as detailed below:
Versions 19.03.0 to 19.03.10: Docker Hub licenses only
Versions 19.03.11 to 19.03.17: Docker Hub licenses and JWT licenses
Versions 19.03.18 and later: JWT licenses only
Using a JWT license with an MKE instance that manages MCR causes the
engine to log error messages in the daemon log file, though MCR does not
fail. This applies to MKE 3.4.x versions prior to 3.4.6 and MKE 3.3.x
versions prior to 3.3.13.
CentOS 8 entered EOL status as of 31-December-2021. For this reason,
Mirantis no longer supports CentOS 8 for all versions of MCR. We encourage
customers who are using CentOS 8 to migrate onto any one of the supported
operating systems, as further bug fixes will not be forthcoming. Refer to
the MCR 19.03 Compatibility Matrix for more information.
In correlation with the end of life (EOL) date for MCR 19.03.8+, Mirantis stopped maintaining this
documentation version as of 2022-05-27. The latest MCR product documentation
is available here.
In correlation with the end of life (EOL) date for MCR 19.03.8+, Mirantis stopped maintaining this
documentation version as of 2022-05-27. The latest MCR product documentation
is available here.
Mirantis Container Runtime (MCR) enables containers to run efficiently on any
substrate, powering business critical applications at the world’s leading
companies.
OS distributed versions not listed in the following matrix are not
supported under Standard Support Subscriptions. For such versions, contact
your Mirantis rep to discuss support options.
Caution
CentOS 8 entered EOL status as of 31-December-2021. For this reason,
Mirantis no longer supports CentOS 8 for all versions of MCR. We encourage
customers who are using CentOS 8 to migrate onto any one of the supported
operating systems, as further bug fixes will not be forthcoming.
In correlation with the end of life (EOL) date for MCR 19.03.8+, Mirantis stopped maintaining this
documentation version as of 2022-05-27. The latest MCR product documentation
is available here.
The MKE, MSR, and MCR platform subscription provides software, support, and
certification to enterprise development and IT teams that build and manage
critical apps in production at scale. It provides a trusted platform for all
apps which supply integrated management and security across the app lifecycle,
comprised primarily of Mirantis Kubernetes Engine, Mirantis Secure Registry
(MSR), and Mirantis Container Runtime (MCR).
Mirantis validates the MKE, MSR, and MCR platform for the operating system
environments specified in the
compatibility-matrix, adhering to the
Maintenance Lifecycle detailed here. Support for
the MKE, MSR, and MCR platform is defined in the
Mirantis Cloud Native Platform Subscription Services agreement.
Detailed here are all currently supported product versions, as well as the
product versions most recently deprecated. It can be assumed that all earlier
product versions are at End of Life (EOL).
Important Definitions
“Major Releases” (X.y.z): Vehicles for delivering major and minor feature
development and enhancements to existing features. They incorporate all
applicable Error corrections made in prior Major Releases, Minor Releases,
and Maintenance Releases.
“Minor Releases” (x.Y.z): Vehicles for delivering minor feature
developments, enhancements to existing features, and defect corrections. They
incorporate all applicable Error corrections made in prior Minor Releases,
and Maintenance Releases.
“Maintenance Releases” (x.y.Z): Vehicles for delivering Error corrections
that are severely affecting a number of customers and cannot wait for the
next major or minor release. They incorporate all applicable defect
corrections made in prior Maintenance Releases.
“End of Life” (EOL): Versions are no longer supported by Mirantis,
updating to a later version is recommended.
In correlation with the end of life (EOL) date for MCR 19.03.8+, Mirantis stopped maintaining this
documentation version as of 2022-05-27. The latest MCR product documentation
is available here.
Use this QuickStart guide to quickly deploy Mirantis Container Runtime (MCR) to
Ubuntu systems from the repository.
Verify that you now have the key with the fingerprint
DD911E995A64A202E85907D6BC14F10B6D085F96 by searching
for the last eight characters of the fingerprint:
Follow the link to download your MCR license file found in the confirmation
email you received after purchasing MCR from the Mirantis web store. If you
cannot access your confirmation email, contact Mirantis.
Copy the file to the data root directory and name it docker.lic. The
default data root directory is /var/lib/docker.
In correlation with the end of life (EOL) date for MCR 19.03.8+, Mirantis stopped maintaining this
documentation version as of 2022-05-27. The latest MCR product documentation
is available here.
Use this QuickStart guide to quickly deploy Mirantis Container Runtime (MCR) to
CentOS systems from the repository.
You only need to set up the repository once, after which you can install MCR
from the repository and upgrade as needed. MCR supports the latest version of
CentOS 64-bit running on x86_64.
Note
MCR supports the overlay2 storage drivers on CentOS. The following
limitations apply:
If you enable selinux, MCR supports overlay2 on CentoOS 7.4 and
higher.
If you disable selinux, MCR supports overlay2 on CentOS 7.2 and
higher, with kernel version 3.10.0-693 and higher.
Remove any existing Docker repositories from /etc/yum.repos.d/:
sudorm/etc/yum.repos.d/docker*.repo
Store https://repos.mirantis.com in an environment variable:
exportDOCKERURL="https://repos.mirantis.com"
Store the value of DOCKERURL using a yum variable in
/etc/yum/vars/:
Follow the link to download your MCR license file found in the confirmation
email you received after purchasing MCR from the Mirantis web store. If you
cannot access your confirmation email, contact Mirantis.
Copy the file to the data root directory and name it docker.lic. The
default data root directory is /var/lib/docker.
In correlation with the end of life (EOL) date for MCR 19.03.8+, Mirantis stopped maintaining this
documentation version as of 2022-05-27. The latest MCR product documentation
is available here.
Use this QuickStart guide to quickly deploy Mirantis Container Runtime (MCR) to
Oracle Linux systems from the repository.
Note
The documentation herein applies only to Oracle Linux 7. Mirantis does not support Oracle 8.
Follow the link to download your MCR license file found in the confirmation
email you received after purchasing MCR from the Mirantis web store. If you
cannot access your confirmation email, contact Mirantis.
Copy the file to the data root directory and name it docker.lic. The
default data root directory is /var/lib/docker.
In correlation with the end of life (EOL) date for MCR 19.03.8+, Mirantis stopped maintaining this
documentation version as of 2022-05-27. The latest MCR product documentation
is available here.
Use this QuickStart guide to quickly deploy Mirantis Container Runtime (MCR) to
Red Hat Enterprise Linux (RHEL) systems from the repository.
You only need to set up the repository once, after which you can install MCR
from the repository and upgrade as needed. MCR supports RHEL 64-bit version 7.4
and higher running on x86_64.
Note
MCR supports the overlay2 storage drivers on RHEL. The following
limitations apply:
If you enable selinux, MCR supports overlay2 on RHEL 7.4 and
higher (OverlayFS).
If you disable selinux, MCR supports overlay2 on RHEL 7.2 and
higher, with kernel version 3.10.0-693 and higher.
Follow the link to download your MCR license file found in the confirmation
email you received after purchasing MCR from the Mirantis web store. If you
cannot access your confirmation email, contact Mirantis.
Copy the file to the data root directory and name it docker.lic. The
default data root directory is /var/lib/docker.