{"id":13121,"date":"2022-06-10T21:02:43","date_gmt":"2022-06-10T18:02:43","guid":{"rendered":"https:\/\/kifarunix.com\/?p=13121"},"modified":"2024-03-09T15:20:40","modified_gmt":"2024-03-09T12:20:40","slug":"install-portainer-on-debian-11-debian-10","status":"publish","type":"post","link":"https:\/\/kifarunix.com\/install-portainer-on-debian-11-debian-10\/","title":{"rendered":"Install Portainer on Debian 11\/Debian 10"},"content":{"rendered":"\n<p>In this tutorial, you will learn how to install Portainer on Debian 11\/Debian 10. <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 Debian 11\/Debian 10<\/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>In this tutorial, we will run 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 Debian 11\/Debian 10<\/h3>\n\n\n\n<p>To begin with, you need to install Docker on Debian 11\/Debian 10 by running the commands below;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt update -y &amp;&amp; apt install curl gnupg2 -y<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -fsSL https:\/\/download.docker.com\/linux\/debian\/gpg \\\n| gpg --dearmor &gt; \/etc\/apt\/trusted.gpg.d\/docker.gpg<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>echo \\\n\"deb &#91;arch=$(dpkg --print-architecture)] https:\/\/download.docker.com\/linux\/debian $(lsb_release -cs) stable\" \\\n| tee \/etc\/apt\/sources.list.d\/docker.list &gt; \/dev\/null<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>apt update<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt 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 Debian 11\/Debian 10.<\/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-09T17:56:05Z\",\n        \"Driver\": \"local\",\n        \"Labels\": {},\n<strong>        \"Mountpoint\": \"\/var\/lib\/docker\/volumes\/pt_data\/_data\",\n<\/strong>        \"Name\": \"pt_data\",\n        \"Options\": {},\n        \"Scope\": \"local\"\n    }\n] \n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"install-portainer-on-debian\"><a href=\"#install-portainer-on-debian\">Install Portainer as Standalone Docker Container<\/a><\/h3>\n\n\n\n<p>Next, download and install Portainer server Docker container on Debian 11\/Debian 10;<\/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 to run in the 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>For example, <strong><code>9443:9443<\/code><\/strong> means 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><strong><code>always<\/code><\/strong> 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\n1d4d3952f3814e94c3237050bcc04ceaf8da7463e025d70397167d790532fc75\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\n1d4d3952f381   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=4897,fd=4))                                         \nLISTEN    0         128                   [::]:9443                [::]:*        users:((\"docker-proxy\",pid=4903,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\"><div class=\"wp-block-image\"><figure class=\"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 Debian 11\/Debian 10\" 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><\/div><\/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\"><div class=\"wp-block-image\"><figure class=\"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 Debian 11\/Debian 10\" 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><\/div><\/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\"><div class=\"wp-block-image\"><figure class=\"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><\/div><\/a><\/div>\n\n\n\n<p>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 Debian 11\/Debian 10\" 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 Docker container on Debian 11\/Debian 10.<\/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-rocky-linux\/\" target=\"_blank\" rel=\"noreferrer noopener\">Install Portainer on Rocky Linux<\/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 Debian 11\/Debian 10. Portainer&nbsp;is a self-service container service delivery platform that provides container management<\/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":[5376,5377,5378,5375,5374,5372,5379],"class_list":["post-13121","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-virtualization","category-containers","category-docker","category-howtos","tag-debian-11-portainer","tag-debian-portainer","tag-install-portainer-linux","tag-install-portainer-on-debian-10","tag-install-portainer-on-debian-11","tag-portainer","tag-portainer-docker-management","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\/13121"}],"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=13121"}],"version-history":[{"count":6,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/13121\/revisions"}],"predecessor-version":[{"id":20571,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/13121\/revisions\/20571"}],"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=13121"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/categories?post=13121"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/tags?post=13121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}