noted.lol
Open in
urlscan Pro
2a06:98c1:3120::3
Public Scan
Submitted URL: http://noted.lol/install-docker-and-portainer/
Effective URL: https://noted.lol/install-docker-and-portainer/
Submission: On January 12 via manual from FR — Scanned from NL
Effective URL: https://noted.lol/install-docker-and-portainer/
Submission: On January 12 via manual from FR — Scanned from NL
Form analysis
2 forms found in the DOM<form class="kg-signup-card-form" data-members-form="signup">
<div class="kg-signup-card-fields">
<input class="kg-signup-card-input" id="email" data-members-email="" type="email" required="true" placeholder="Your email">
<button class="kg-signup-card-button kg-style-accent" style="color: #FFFFFF;" type="submit">
<span class="kg-signup-card-button-default">Subscribe</span>
<span class="kg-signup-card-button-loading"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
<g class="nc-loop-dots-4-24-icon-o">
<circle cx="4" cy="12" r="3"></circle>
<circle cx="12" cy="12" r="3"></circle>
<circle cx="20" cy="12" r="3"></circle>
</g>
<style data-cap="butt">
.nc-loop-dots-4-24-icon-o {
--animation-duration: 0.8s
}
.nc-loop-dots-4-24-icon-o * {
opacity: .4;
transform: scale(.75);
animation: nc-loop-dots-4-anim var(--animation-duration) infinite
}
.nc-loop-dots-4-24-icon-o :nth-child(1) {
transform-origin: 4px 12px;
animation-delay: -.3s;
animation-delay: calc(var(--animation-duration)/-2.666)
}
.nc-loop-dots-4-24-icon-o :nth-child(2) {
transform-origin: 12px 12px;
animation-delay: -.15s;
animation-delay: calc(var(--animation-duration)/-5.333)
}
.nc-loop-dots-4-24-icon-o :nth-child(3) {
transform-origin: 20px 12px
}
@keyframes nc-loop-dots-4-anim {
0%,
100% {
opacity: .4;
transform: scale(.75)
}
50% {
opacity: 1;
transform: scale(1)
}
}
</style>
</g>
</svg></span>
</button>
</div>
<div class="kg-signup-card-success" style="color: #FFFFFF;"> Email sent! Check your inbox to complete your signup. </div>
<div class="kg-signup-card-error" style="color: #FFFFFF;" data-members-error=""></div>
</form>
<form class="gh-form" data-members-form="">
<input class="gh-form-input" type="email" placeholder="jamie@example.com" required="" data-members-email="">
<button class="gh-button" type="submit">
<span><span>Subscribe</span> <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="currentColor" viewBox="0 0 256 256">
<path d="M224.49,136.49l-72,72a12,12,0,0,1-17-17L187,140H40a12,12,0,0,1,0-24H187L135.51,64.48a12,12,0,0,1,17-17l72,72A12,12,0,0,1,224.49,136.49Z"></path>
</svg></span>
<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
<g class="nc-loop-dots-4-24-icon-o">
<circle cx="4" cy="12" r="3"></circle>
<circle cx="12" cy="12" r="3"></circle>
<circle cx="20" cy="12" r="3"></circle>
</g>
<style data-cap="butt">
.nc-loop-dots-4-24-icon-o {
--animation-duration: 0.8s
}
.nc-loop-dots-4-24-icon-o * {
opacity: .4;
transform: scale(.75);
animation: nc-loop-dots-4-anim var(--animation-duration) infinite
}
.nc-loop-dots-4-24-icon-o :nth-child(1) {
transform-origin: 4px 12px;
animation-delay: -.3s;
animation-delay: calc(var(--animation-duration)/-2.666)
}
.nc-loop-dots-4-24-icon-o :nth-child(2) {
transform-origin: 12px 12px;
animation-delay: -.15s;
animation-delay: calc(var(--animation-duration)/-5.333)
}
.nc-loop-dots-4-24-icon-o :nth-child(3) {
transform-origin: 20px 12px
}
@keyframes nc-loop-dots-4-anim {
0%,
100% {
opacity: .4;
transform: scale(.75)
}
50% {
opacity: 1;
transform: scale(1)
}
}
</style>
</g>
</svg> <svg class="checkmark" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52">
<path class="checkmark__check" fill="none" d="M14.1 27.2l7.1 7.2 16.7-16.8"></path>
<style>
.checkmark {
width: 40px;
height: 40px;
display: block;
stroke-width: 2.5;
stroke: currentColor;
stroke-miterlimit: 10;
}
.checkmark__check {
transform-origin: 50% 50%;
stroke-dasharray: 48;
stroke-dashoffset: 48;
animation: stroke .3s cubic-bezier(0.650, 0.000, 0.450, 1.000) forwards;
}
@keyframes stroke {
100% {
stroke-dashoffset: 0;
}
}
</style>
</svg> </button>
</form>
Text Content
* Home * Get Started * About * Sponsors * Contact * Contribute * Sign Up Sign in Subscribe Get Started Self Hosting INSTALL DOCKER AND PORTAINER ON DEBIAN FOR SELF-HOSTING Install Docker and Portainer with this quick and simple guide sure to have you self-hosting your own apps in no time at all. JEREMY Sep 14, 2023 — 5 min read When I started tinkering with self-hosting, Docker was by far my biggest hurdle. But to learn more about Docker, we need to figure out how to install it first. Then, later will will install and use Portainer to manage and monitor our Docker containers. TABLE OF CONTENTS 1. Install Docker and Portainer on Debian for Self-Hosting 2. Self Host a Ghost Blog on Your Homelab Using Docker 3. Setup your Domain using Cloudflare Tunnels and Zero Trust 4. How to Protect Self Hosted Login Pages using Cloudflare Zero Trust Policies Docker does a good job at explaining how to install Docker on specific distros. However, I always found it intimidating with how the instructions are laid out. So this guide is from a different perspective. A perspective from someone who once was lost and was learning like you are. I'll lay it out in a much more simple format for beginners to move forward as quickly as possible. Aftrall, we live in a "I want it now" society and quite frankly, that's how I would want to see it done! UPDATE AND UPGRADE THE HOST MACHINE It's important to keep your host machine up to date. This can include important patches that keep your host safe from vulnerabilities. Step 1. Update the host. apt update Step 2. Upgrade the host. apt upgrade -y INSTALL DOCKER ON YOUR HOST MACHINE Docker has made this very simple by creating an official install script that does all the work for you. You can see what this script includes and how it works on the Docker Github repo. > The purpose of the install script is for a convenience for quickly installing > the latest Docker-CE releases on the supported linux distros. It is not > recommended to depend on this script for deployment to production systems. For > more thorough instructions for installing on the supported distros, see > the install instructions. I'll be using Ubuntu 23.04 standard on Proxmox to run these commands as root. You may need to add sudo at the beginning of these commands if you are not logged in as root. Step 1. Install curl. apt install curl Step 2. Install Docker. curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh Step 3. Check if Docker is functioning. systemctl status docker Step 4. Force Docker to start at boot. systemctl enable docker This step is not necessary but can make the process of starting docker quicker by doing it automatically. This way you don't have to manually start Docker when you reboot your host machine. I haven't seen any official documentation but Docker always seems to start automatically regardless after testing on my hardware. As you get more comfortable with Docker and setting up self-hosted applications, you'll also find it useful to install Docker Compose and Git along the way. INSTALL DOCKER COMPOSE ON THE HOST MACHINE Run the following command to install Docker Compose apt install docker-compose INSTALL GIT ON THE HOST MACHINE You may come across a project that requires you to clone it to your host machine from Github. To do this, you will need to install Git. apt install git -y Now you can use the git clone command to clone repositories to your host machine. SETTING UP PORTAINER ON THE HOST MACHINE I think it's a great idea to learn basic Docker commands because they will come in handy at a later time. Especially when you want to update Portainer. Portainer makes managing Docker containers easier and in my opinion, faster. You want it now right? 😆 Well Portainer will give you a nice graphic interface for what would otherwise be a much larger learning curve using only the CLI (command line interface). Step 1. Install Portainer. Now that Docker is installed, you can install Portainer using Docker run. Open your terminal and run the following command to install Portainer. docker run -d \ --name="portainer" \ --restart on-failure \ -p 9000:9000 \ -p 8000:8000 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:latest When complete, navigate to your host IP on port 9000. Example: 192.168.1.5:9000. You will see the Portainer registration page. If you don't know the host machine IP, you can use the following command to output the information. ip addr Mine is usually always listed under number 2 in the output. Step 2. Create a Portainer admin account. I uncheck the collection of anonymous statistics. I don't need anyone knowing what I do or when I do it, but I am happy to give feedback of course. Then click "Create user" and log in! SIGN UP FOR NOTED MAXIMIZE YOUR HOMELAB POTENTIAL WITH SELF-HOSTING AND OPEN-SOURCE SOLUTIONS. Subscribe Email sent! Check your inbox to complete your signup. No spam. Unsubscribe anytime. FINAL NOTES AND THOUGHTS For now, this is a great place to stop and get familiar with Portainer and the menu within the dashboard. Browse around and check out the different settings but try not to get overwhelmed by all the technical jargon you may not understand. In the next article, we will go over Portainer basics and launching your first self-hosted application using Portainer and the Docker Compose stacks feature. Make a Donation ❤️ READ MORE TINYPILOT VOYAGER 2A - PALM SIZE KVM OVER IP MADE EASY Let's talk about the TinyPilot Voyager 2a which is an amazing product to make having headless servers easier to manage. By Mediacowboy Jan 2, 2024 SNAPP - YET ANOTHER SELF-HOSTED URL SHORTENER Snapp empowers you to effortlessly create and manage shortened links. By Jeremy Dec 7, 2023 SELF HOSTING 101 - OOPS WE HAVE TO LEARN WHAT WE BREAK! From homelab to cloud hosted VPS. Self-hosting has many meanings! Which one is for you? By Flavius Nov 27, 2023 DOCKGE - A DOCKER MANAGER FOR SELF-HOSTING ENTHUSIASTS Finally, A Docker manager tailored to the homelab enthusiast! By Jeremy Nov 25, 2023 * Discord * RSS * Contact * As seen on HN * Archive Powered by Ghost NOTED Maximize Your Homelab Potential with Self-Hosting and Open-Source Solutions. Subscribe