{"id":13123,"date":"2022-06-11T08:36:01","date_gmt":"2022-06-11T05:36:01","guid":{"rendered":"https:\/\/kifarunix.com\/?p=13123"},"modified":"2024-03-09T15:18:26","modified_gmt":"2024-03-09T12:18:26","slug":"install-portainer-on-rocky-linux","status":"publish","type":"post","link":"https:\/\/kifarunix.com\/install-portainer-on-rocky-linux\/","title":{"rendered":"Install Portainer on Rocky Linux"},"content":{"rendered":"\n<p>In this tutorial, you will learn how to install Portainer on Rocky Linux. <em><a href=\"https:\/\/www.portainer.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">Portainer<\/a>&nbsp;is a self-service container service delivery platform that provides container management GUI for Kubernetes, Docker and Swarm<\/em>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Install Portainer on Rocky Linux<\/h2>\n\n\n\n<p>Portainer is available as both Community Edition and Business Edition. We will be installing the Community Edition in this guide.<\/p>\n\n\n\n<p>There are different environments in which you can deploy Portainer;<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Standalone Docker container<\/li>\n\n\n\n<li>Docker Swarm<\/li>\n\n\n\n<li>Kubernetes<\/li>\n<\/ol>\n\n\n\n<p>We will learn how to install Portainer as a standalone Docker container.<\/p>\n\n\n\n<p>You can also check how to setup Portainer with SSL certificates by following the link below;<\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/setup-portainer-with-ssl-certificates\/\" target=\"_blank\" rel=\"noreferrer noopener\">Setup Portainer with SSL Certificates<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Install Docker on Rocky Linux<\/h3>\n\n\n\n<p>To begin with, you need to install Docker on Rocky Linux by running the commands below;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dnf config-manager --add-repo=https:\/\/download.docker.com\/linux\/centos\/docker-ce.repo<\/code><\/pre>\n\n\n\n<p>Disable container-tools module which provides runc which conflicts with podman\/containerd.io<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dnf -y module disable container-tools<\/code><\/pre>\n\n\n\n<p>Then install Docker ce on Rocky Linux.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dnf install docker-ce docker-ce-cli containerd.io<\/code><\/pre>\n\n\n\n<p>Start and enable Docker to run on system boot;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl enable --now docker<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Create Portainer Server Docker Data Volume<\/h3>\n\n\n\n<p>Once the Docker is in place, it is now time to deploy Portainer on Rocky Linux.<\/p>\n\n\n\n<p>To begin with, you need to create Portainer server data volume. <em>Please note that Portainer requires <a href=\"https:\/\/docs.portainer.io\/v\/ce-2.9\/start\/requirements-and-prerequisites#persistent-storage\" target=\"_blank\" rel=\"noreferrer noopener\">persistent storage<\/a> in order to maintain the database and configuration information it needs to function<\/em>.<\/p>\n\n\n\n<p>You can create a Docker volume using the command;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker volume create &#91;OPTIONS] &#91;VOLUME-NAME]<\/code><\/pre>\n\n\n\n<p>For example, to create a volume called <strong><code>pt_data<\/code><\/strong>, you can use the command. Name can be anything of your preference.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker volume create pt_data<\/code><\/pre>\n\n\n\n<p>You can confirm the volumes by listing them;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker volume ls<\/code><\/pre>\n\n\n\n<p>Sample output;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>DRIVER    VOLUME NAME\nlocal     pt_data<\/code><\/pre>\n\n\n\n<p>The voume is created under the Docker host path, <strong>\/var\/lib\/docker\/volumes\/<\/strong>. See the output from the command below;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker volume inspect pt_data<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>[\n    {\n        \"CreatedAt\": \"2022-06-11T01:24:00-04:00\",\n        \"Driver\": \"local\",\n        \"Labels\": {},\n        \"Mountpoint\": \"\/var\/lib\/docker\/volumes\/pt_data\/_data\",\n        \"Name\": \"pt_data\",\n        \"Options\": {},\n        \"Scope\": \"local\"\n    }\n]\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Install Portainer<\/h3>\n\n\n\n<p>Next, download and install Portainer server Docker container on Rocky Linux;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run -d -p 8000:8000 -p 9443:9443 --name portainer \\\n--restart=always -v \/var\/run\/docker.sock:\/var\/run\/docker.sock \\\n-v <strong>pt_data<\/strong>:\/data portainer\/portainer-ce:latest<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Note that the Portainer Server listens on port TCP  <code>9443<\/code> for the UI and API and on an optional port TCP  <code>8000<\/code>, which is only required if using Edge Compute features with Edge Agents.<\/li>\n\n\n\n<li>The Portainer Agents listen on TCP port <code>9001<\/code><\/li>\n<\/ul>\n\n\n\n<p>Demystifying the Docker command line options used above;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>-d\/--detach<\/code><\/strong>: Causes the container in background and print container ID<\/li>\n\n\n\n<li><code><strong>-p\/--publish<\/strong><\/code>: Exposes\/Publishes a container&#8217;s port(s) to the host.\n<ul class=\"wp-block-list\">\n<li>9443:9443: For example, Portainer server container port 9443 can be accessed on the main Docker host on port 9443.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong><code>--name<\/code><\/strong>: Assign a name to the container.<\/li>\n\n\n\n<li><code><strong>--restart<\/strong><\/code>: Restart policy to apply when a container exits (default &#8220;no&#8221;)\n<ul class=\"wp-block-list\">\n<li>always means <em>Always restart<\/em>&nbsp;the&nbsp;<em>container<\/em>&nbsp;regardless of the exit status<\/li>\n\n\n\n<li>it also causes the container to start on daemon startup, regardless of the current state of the container<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong><code>-v\/--volume<\/code><\/strong>: Bind mount a Docker container volume.\n<ul class=\"wp-block-list\">\n<li><strong><code>-v \/var\/run\/docker.sock:\/var\/run\/docker.sock<\/code><\/strong>: This causes the Portainer Server container process to communicate with the main host Docker process.<\/li>\n\n\n\n<li><strong><code>-v pt_data:\/data<\/code><\/strong>: Mounts the Portainer Server container data, <strong><code>\/data<\/code><\/strong>, to the host path <strong><code>\/var\/lib\/docker\/volumes\/pt_data<\/code><\/strong>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>And then of course the Portainer image we are using, the Portainer CE latest container image, <strong><code>portainer\/portainer-ce:latest<\/code><\/strong>.<\/li>\n<\/ul>\n\n\n\n<p>Read more on <code>docker run --help<\/code>.<\/p>\n\n\n\n<p>Sample output from the command above;<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>Unable to find image 'portainer\/portainer-ce:latest' locally\nlatest: Pulling from portainer\/portainer-ce\n772227786281: Pull complete \n96fd13befc87: Pull complete \ndc6f8e90d5b4: Pull complete \n0e84c6386ab3: Pull complete \nDigest: sha256:52f9fdee1e4acfb1b5c4ddd15c88905287efb6e8f8058d2c5a2543ddc72e9dc0\nStatus: Downloaded newer image for portainer\/portainer-ce:latest\n521fb09ed7c7daa9241c85e469928e232d5034edb6d8ec4b89d3ba4e5fc601eb\n<\/code><\/pre>\n\n\n\n<p>Portainer server should now be running.<\/p>\n\n\n\n<p>You can list running Docker container using the command;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker ps<\/code><\/pre>\n\n\n\n<p>Sample output;<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>CONTAINER ID   IMAGE                           COMMAND        CREATED              STATUS              PORTS                                                                                            NAMES\n72e109adcd89   portainer\/portainer-ce:latest   \"\/portainer\"   About a minute ago   Up About a minute   0.0.0.0:8000-&gt;8000\/tcp, :::8000-&gt;8000\/tcp, 0.0.0.0:9443-&gt;9443\/tcp, :::9443-&gt;9443\/tcp, 9000\/tcp   portainer\n<\/code><\/pre>\n\n\n\n<p>You can confirm that actually, the Portainer server UI port is opened on the host as well.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ss -altnp | grep 9443<\/code><\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>LISTEN 0      128          0.0.0.0:9443      0.0.0.0:*    users:((\"docker-proxy\",pid=13560,fd=4))                 \nLISTEN 0      128             [::]:9443         [::]:*    users:((\"docker-proxy\",pid=13566,fd=4))\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Accessing Portainer Server Web Interface<\/h3>\n\n\n\n<p>Portainer server web services is exposed to the Docker host on port 9443\/TCP.<\/p>\n\n\n\n<p>In order to access Portainer server UI, then navigate to the browser and enter the address <code><strong>https:\/\/docker-domain-or-IP:9443<\/strong><\/code><\/p>\n\n\n\n<p>If Firewall is running, ensure that your open port 9443\/TCP to allow external access to Portainer web service.<\/p>\n\n\n\n<p>Accept the self-signed SSL exception and proceed to Portainer server web interface.<\/p>\n\n\n\n<div><a href=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/06\/portainer-admin-account.png\" class=\"td-modal-image\"><figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1251\" height=\"849\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/06\/portainer-admin-account.png\" alt=\"Install Portainer on Rocky Linux\" class=\"wp-image-13115\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/06\/portainer-admin-account.png?v=1654803121 1251w, https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/06\/portainer-admin-account-768x521.png?v=1654803121 768w\" sizes=\"(max-width: 1251px) 100vw, 1251px\" \/><\/figure><\/a><\/div>\n\n\n\n<p>Create Admin user and password by entering password and click <strong>Create User.<\/strong><\/p>\n\n\n\n<p>You should then land on the Portainer server web interface.<\/p>\n\n\n\n<div><a href=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/06\/portainer-web-ui.png\" class=\"td-modal-image\"><figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1887\" height=\"949\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/06\/portainer-web-ui.png\" alt=\"Install Portainer on Rocky Linux\" class=\"wp-image-13116\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/06\/portainer-web-ui.png?v=1654803155 1887w, https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/06\/portainer-web-ui-768x386.png?v=1654803155 768w, https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/06\/portainer-web-ui-1536x772.png?v=1654803155 1536w\" sizes=\"(max-width: 1887px) 100vw, 1887px\" \/><\/figure><\/a><\/div>\n\n\n\n<p>Home;<\/p>\n\n\n\n<div><a href=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/06\/portainer-home-environment.png\" class=\"td-modal-image\"><figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1899\" height=\"644\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/06\/portainer-home-environment.png\" alt=\"\" class=\"wp-image-13117\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/06\/portainer-home-environment.png?v=1654803179 1899w, https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/06\/portainer-home-environment-768x260.png?v=1654803179 768w, https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/06\/portainer-home-environment-1536x521.png?v=1654803179 1536w\" sizes=\"(max-width: 1899px) 100vw, 1899px\" \/><\/figure><\/a><\/div>\n\n\n\n<p>Local environment Dashboard;<\/p>\n\n\n\n<div><a href=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/06\/portainer-dashboard.png\" class=\"td-modal-image\"><figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1897\" height=\"784\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/06\/portainer-dashboard.png\" alt=\"Install Portainer on Rocky Linux\" class=\"wp-image-13118\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/06\/portainer-dashboard.png?v=1654803201 1897w, https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/06\/portainer-dashboard-768x317.png?v=1654803201 768w, https:\/\/kifarunix.com\/wp-content\/uploads\/2022\/06\/portainer-dashboard-1536x635.png?v=1654803201 1536w\" sizes=\"(max-width: 1897px) 100vw, 1897px\" \/><\/figure><\/a><\/div>\n\n\n\n<p>And there you go. That concludes our guide on how to install Portainer as a standalone Docker.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Further Reading<\/h3>\n\n\n\n<p><a href=\"https:\/\/docs.portainer.io\/v\/ce-2.9\/\" target=\"_blank\" rel=\"noreferrer noopener\">Portainer Documentation<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Other Tutorials<\/h3>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-portainer-on-ubuntu\/\" target=\"_blank\" rel=\"noreferrer noopener\">Install Portainer on Ubuntu 22.04<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-portainer-on-debian-11-debian-10\/\" target=\"_blank\" rel=\"noreferrer noopener\">Install Portainer on Debian 11\/Debian 10<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-and-run-mariadb-as-a-docker-container\/\" target=\"_blank\" rel=\"noreferrer noopener\">Install and Run MariaDB as a Docker Container<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/deploy-a-single-node-elastic-stack-cluster-on-docker-containers\/\" target=\"_blank\" rel=\"noreferrer noopener\">Deploy a Single Node Elastic Stack Cluster on Docker Containers<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this tutorial, you will learn how to install Portainer on Rocky Linux. Portainer&nbsp;is a self-service container service delivery platform that provides container management GUI<\/p>\n","protected":false},"author":1,"featured_media":13113,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_lock_modified_date":false,"footnotes":""},"categories":[36,1076,1077,121],"tags":[5383,5372,5381,5382],"class_list":["post-13123","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-virtualization","category-containers","category-docker","category-howtos","tag-docker-management-interface","tag-portainer","tag-portainer-docker-ui-rocky-linux","tag-portainer-rocky-linux","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-50","resize-featured-image"],"_links":{"self":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/13123"}],"collection":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/comments?post=13123"}],"version-history":[{"count":6,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/13123\/revisions"}],"predecessor-version":[{"id":20569,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/13123\/revisions\/20569"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media\/13113"}],"wp:attachment":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media?parent=13123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/categories?post=13123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/tags?post=13123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}