Hello all !
Following that post, I’m offering to noobs like me the opportunity to learn how to install docker to a Debian system. Being a beginner myself, I don’t pretend to know the perfect or more appropriate way to achieve this, and I hope that more experienced people will join the conversation to correct and complete the informations I’m about to give.
The first way I know of is the way I first installed docker and portainer on my machine. I used OpenMediaVault and omv-extras, which was quite straight formard. But depending on the version you are using, you might not find omv-extras anymore in OMV, and the new way of getting docker through it is in my opinion quite painfull.
So let’s go with the simple way:
Pre-requisite : having Debian installed on your machine and SSH into it.
Set up the repository:
- Update the
apt
package index and install packages to allow apt to use a repository over HTTPS:
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
- Add Docker’s official GPG key:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- Use the following command to set up the repository:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Install Docker Engine
- Update the
apt
package index:
sudo apt-get update
- Install Docker Engine, containerd, and Docker Compose:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
- You can verify that Docker Engine is installed correctly by running the
hello-world
image.
sudo docker run hello-world
Install Portainer
- Create Docker Volume to store the data:
docker volume create portainer_data
- Install Portainer Server:
docker run -d -p 8000:8000 -p 9000:9000 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
Access Portainer Dashboard
- In a browser, visit the following address:
http://<yourmachineipadress>:9000
-
The first time you access Portainer, the system asks to create a password for the admin user. Type the password twice and select the Create user button.
-
Select the Get Started button to go to the dashboard and start using Portainer in the local environment only.
You’re set up ! Now, you can use simple docker-composes in Portainer **stacks ** tab to deploy new apps and services.
Debian system?
Yes, as stated in the title and post. It is stable and easy to use and update. It also is available on a wide variety of architectures and devices. So far it never failed me.
I believe my post could apply to other systems.
If that was a rethorical question, I believe you’re not in favor of it. I think it would be more constrictive to elaborate and participate to the conversation:)
Great write up!
Docker has an install script on their https://github.com/docker/docker-install page that takes a lot of the headache out. Also ‘sudo usermod -aG docker $USER’ will allow you to run docker without sudo.
Great tips. Thank you.
Shameless plug, bit more advance setup with better underlaying file system. Deploying generic docker hosting on Debian Bullseye with ZFS backend After it you can continue with “Install Portainer” step in guide above.
Great summary. Thanks for taking the time to write it up.
Nice my server at home runs debian with a couple containers
I would suggest having a look at podman. It’s a drop-in replacement for docker, except it doesn’t require a constantly running daemon, it comes in the main package repositories, so you don’t have to do the key and repository stuff, and cockpit has a plugin to help manage podman containers.
Will have a look. Thanks for the suggestion.