Jump to content

Open Access

Access
Guides: Subscribers Workshop: Install/Upgrade/Uninstall Docker

If you have tried installing docker to your system but failed to follow the docker.com docs then please do the following.
Now before starting, a rule of thumb, make sure your system is up to date.

Basic Set-up for installing docker.
Step 1. Update the host.
$ apt update Step 2. Upgrade the host.
$ apt upgrade -y Step 3. Install curl.
$ apt install curlStep 3. Install Docker.
$ curl -sSL https://get.docker.com | shStep 5 Check if Docker is functioning.
$ systemctl status docker
Upgrade Docker Engine
To upgrade Docker Engine, download the newer package files and repeat the installation procedure, pointing to the new files.

Tip
Preview script steps before running. You can run the script with the --dry-run option to learn what steps the script will run when invoked:
$ curl -fsSL https://get.docker.com -o get-docker.sh $ sudo sh ./get-docker.sh --dry-run This example downloads the script from https://get.docker.com/ and runs it to install the latest stable release of Docker on Linux:
$ curl -fsSL https://get.docker.com -o get-docker.sh $ sudo sh get-docker.sh Executing docker install script, commit: 7cae5f8b0decc17d6571f9f52eb840fbc13b2737 <...> You have now successfully installed and started Docker Engine. The docker service starts automatically on Debian based distributions. On RPM based distributions, such as CentOS, Fedora, RHEL or SLES, you need to start it manually using the appropriate systemctl or service command. As the message indicates, non-root users can't run Docker commands by default.


Uninstall Docker Engine
Uninstall the Docker Engine, CLI, containerd, and Docker Compose packages:
$ sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extrasImages, containers, volumes, or custom configuration files on your host aren't automatically removed. To delete all images, containers, and volumes:
$ sudo rm -rf /var/lib/docker $ sudo rm -rf /var/lib/containerdRemove source list and keyrings
$ sudo rm /etc/apt/sources.list.d/docker.list $ sudo rm /etc/apt/keyrings/docker.asc
You have to delete any edited configuration files manually.

Referenced: https://docs.docker.com/engine/install/debian/
Guides: Subscribers Workshop: Install/Upgrade/Uninstall Docker


Andy
Andy
Guides: Subscribers Workshop: Installing Portainer

Deployment
First, create the volume that Portainer Server will use to store its database:
docker volume create portainer_data
Then, download and install the Portainer Server container:
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:ltsBy default, Portainer generates and uses a self-signed SSL certificate to secure port 9443.

Portainer Server has now been installed. You can check to see whether the Portainer Server container has started by running docker ps:
root@server:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES de5b28eb2fa9 portainer/portainer-ce:lts "/portainer" 2 weeks ago Up 9 days 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 0.0.0.0:9443->9443/tcp, :::9443->9443/tcp portainer
If you don't know the host machine IP, you can use the following command to output the information.
ip addr
Logging In
Now that the installation is complete, you can log into your Portainer Server instance by opening a web browser and going to:
https://localhost:9443 https://192.168.1.150:9443Replace localhost with the relevant IP address or FQDN if needed, and adjust the port if you changed it earlier.
You will be presented with the initial setup page for Portainer Server.


Initial setup
Once the Portainer Server has been deployed, and you have navigated to the instance's URL, you are ready for the initial setup.

Creating the first user
Your first user will be an administrator. The username defaults to admin but you can change it if you prefer. The password must be at least 12 characters long and meet the listed password requirements.

The installation process automatically detects your local environment and sets it up for you. If you want to add additional environments to manage with this Portainer instance, click Add Environments. Otherwise, click Get Started to start using Portainer!


Andy
Andy
Stacks: Subscribers Workshop: Journal

What we think of Journal -
I was looking for a better way to keep track of personal, medical, and other important information that I usually carry around in my head. Handwriting everything wasn’t ideal, especially since my handwriting isn't the greatest, so I wanted a digital solution that would be more organized, accessible, and easier to maintain. This has turned out to be a great way to capture and manage the details that matter most to me.

About Journal -
Journal is a privacy first, self-hosted digital log book. It is designed to be accessible anywhere you go, allowing you to organize your thoughts, feelings and opinions in one place. Your Journals are stored with AES 256 encryption using your own password as the encryption key, resulting in a protected and inaccessible log book from outsiders.

Feature highlights
Mobile friendly
Advanced content editor (supports image upload)
Organise entries using categories
Create predefined sets of templates for entries
Entries, Templates and Images have AES-256 Encryption
Order your favorite categories to appear on the top
Quickly add entries by enabling the quick-add widget
Advanced search
Create accounts for users
Export entries

Stack -
version: '2.3' services: journal: image: samihsoylu/journal restart: unless-stopped ports: - 8080:80 depends_on: - mariadb environment: - DB_HOST=mariadb - DB_USERNAME=journal - DB_PASSWORD=journal - DB_SCHEMA=journal - DEBUG_MODE=true - USERNAME=demouser - PASSWORD=demopass - [email protected] mariadb: image: mariadb environment: - MARIADB_RANDOM_ROOT_PASSWORD=yes - MARIADB_USER=journal - MARIADB_PASSWORD=journal - MARIADB_DATABASE=journal volumes: - db_data:/var/lib/mysql volumes: db_data:
Docker Source:
https://github.com/samihsoylu/journal


Andy
Andy
Stacks: Subscribers Workshop: PostgreSQL
Stacks: Subscribers Workshop: pgAdmin
The subscriber workshop comes with a different stack version of PostgreSQL and PGAdmin compared to the open workshop counterpart.

What we think of PostgreSQL -
Without going into too much detail, PostgreSQL is a highly versatile and secure database that's used in many of the Docker stacks we've submitted on the VulpeLab website. It competes effectively with other popular systems like MySQL and MariaDB, offering top-tier performance and robust security.
Many of our stacks will reference this thread for further information.

About Journal -
PostgreSQL is a powerful, open source object-relational database system that uses and extends the SQL language combined with many features that safely store and scale the most complicated data workloads. The origins of PostgreSQL date back to 1986 as part of the POSTGRES project at the University of California at Berkeley and has more than 35 years of active development on the core platform.

Feature highlights
Open Source & Actively Maintained
SQL Standards Compliance
Extensible Architecture
Advanced Indexing & Optimization
High Performance
ACID Compliance & MVCC
Robust Security
Replication & Recovery
Cross-Platform & Language Support
Internationalization & Timezone Awareness

Stack - Tested in Portainer
services: db: container_name: PostgreSQL image: postgres mem_limit: 256m cpu_shares: 768 healthcheck: test: ["CMD", "pg_isready", "-q", "-d", "postgres", "-U", "postgres"] environment: POSTGRES_PASSWORD: [CHANGE PASSWORD / MAKE IT 32 LENGTH] POSTGRES_DB: db PUID: 1000 PGID: 1000 volumes: - ./postgresql:/var/lib/postgresql/data:rw ports: - 5432:5432 restart: always pgadmin: container_name: pgAdmin image: dpage/pgadmin4:latest mem_limit: 256m cpu_shares: 768 healthcheck: test: wget --no-verbose --tries=1 --spider http://localhost:5050 environment: PGADMIN_DEFAULT_EMAIL: Your-own-email@-address PGADMIN_DEFAULT_PASSWORD: [CHANGE PASSWORD] PGADMIN_LISTEN_PORT: 5050 ports: - 2660:5050 volumes: - ./postgresadmin:/var/lib/pgadmin:rw restart: on-failure:5
Troubleshooting Password Recovery (E-mail Not Sending)
If you are experiencing issues with password recovery (for example, the recovery e-mail is not being sent), the problem is usually related to your e-mail configuration inside the Docker container. To resolve this, you’ll need to update the container settings and make the necessary adjustments.
Our subscribers have access to a detailed step-by-step guide with the exact configuration changes required. This includes:
How to access and edit the container environment variables
What SMTP settings need to be updated
Common issues and fixes for e-mail delivery from within Docker
Testing your configuration to confirm e-mails are working
By following the guide, you’ll be able to restore password recovery functionality quickly and ensure your users receive e-mail notifications as expected.

Docker Source:
https://hub.docker.com/_/postgres
https://hub.docker.com/r/dpage/pgadmin4/


Andy
Andy
What we think of MariaDB -
Without going into too much detail, MariaDB is a lightweight and versatile database that originated as a fork of MySQL. It’s popular for its efficient performance and flexible storage options, making it a strong alternative to both MySQL and PostgreSQL. Many of our websites run on MySQL, and several of our VulpeLab Docker stacks also make use of MariaDB.

About MariaDB -
MariaDB Server is one of the most popular database servers in the world. It’s made by the original developers of MySQL and guaranteed to stay open source.
MariaDB Server turns data into structured information in a wide array of applications, ranging from banking to websites. Originally designed as enhanced, drop-in replacement for MySQL, MariaDB Server is used because it is fast, scalable and robust, with a rich ecosystem of storage engines, plugins and many other tools make it very versatile for a wide variety of use cases.

Feature highlights
MySQL compatible – Can easily replace MySQL with minimal or no changes.
Multiple storage engines – Choose the best for your workload (InnoDB, Aria, MyRocks, ColumnStore, Spider, etc.).
Advanced SQL features – JSON support, window functions, CTEs, dynamic/virtual columns, GIS data.
Flexible schema changes – Add or change columns online with minimal downtime.
Strong security – Role-based access, encryption (at rest & in transit), audit logging, data masking.
Scalable & high availability – Replication, Galera Cluster, sharding, parallel queries, MaxScale for load balancing and failover.
Backup & recovery – Full/incremental backups, point-in-time recovery, Flashback to undo transactions.
Open source & community-driven – Transparent development, frequent updates, large active community.

Stack - Tested in Portainer
services: mariadb: image: mariadb:latest container_name: MariaDB volumes: - /containers/mariadb:/var/lib/mysql:rw environment: - MARIADB_ROOT_PASSWORD=VulpeLab ports: - "3306:3306" restart: always
Docker Source:
https://hub.docker.com/_/mariadb


Andy
Andy

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.