Mastodon

Docker Management

Yacht

Yacht

Yacht - a WebUI for Docker Management

If you're already into self-hosting, and home-labbing (yes, I just made that word up I think), then you have probably used docker at some point.  If you have, and you haven't heard of the great tools out there for Graphical User interface based management of your docker applications, then you are in luck.  This article and video show you a really amazing, open source, self hosted tool called Yacht. It's whole purpose is to help you install and manage docker applications through a clean, beautiful, intuitive graphical user interface.

If you've ever heard of or used Portainer, then you'll have some idea about what Yacht does.  Yacht is similar to portainer in many ways, but it differs in that it really wants to put a focus on being a GUI tool that works on top of the amazingly good CLI (command line interface) tools that are already out there for docker (e.g. docker-compose).  

What You'll Need

Install Docker, Docker-CE the easy way

You can easily install Docker-CE, Docker-Compose, Portainer-CE, and NGinX Proxy manager by using this quick install script I created and maintain on Gitlab.  Just use the command:

wget https://gitlab.com/bmcgonag/docker_installs/-/raw/main/install_docker_nproxyman.sh

To download the script to your desired host machine.

Change the permissions to make the script executable:

chmod +x ./install_docker_nproxyman.sh

and then run the script with the command:

./install_docker_nproxyman.sh

When run, the script will prompt you to select your host operating system, then will ask you which bits of software you want to install.

Simply enter 'y' for each thing you want to install.

At some point, you'll be asked for your super user (sudo) password as well.

Allow the script to complete installation.

At this point, you might want to log out and back in, as this will allow you to use the docker and docker-compose commands without the need of sudo in front of them.

Install Yacht

Docker Compose for Yacht

SSH or open a terminal (CLI) window on yoru host machine.  If you don't already have one, create a new "docker" folder.  I put mine right in my home directory on my server.

mkdir docker

Now, cd into that folder, and create a folder for our Yacht install.

cd docker

mkdir yacht

Now cd into the Yacht folder we just created, and create a new file with the nano text editor (or any text editor you like) called "docker-compose.yml".

cd yacht

nano docker-compose.yml

Next, copy the docker-compose code below, and paste it into the text editor. You can copy and paste in the Linux CLI with CTRL+Shift +C, and CTRL + Shift + V respectively.

version: "3"
services:
  yacht:
    container_name: yacht
    restart: unless-stopped
    ports:
      - 8000:8000
    volumes:
      - ./yacht:/config
      - /var/run/docker.sock:/var/run/docker.sock
    image: selfhostedpro/yacht

The only change you might wnat to make in the file above, is the port mapping.  You can change the port number on the left side of the colon ":" to another number if your system is already using port 8000 for a different application.  Just remember what port number you choose.  I set mine to 8016 in the video.

Now, save the file with CTRL + O, then press Enter to confirm, and use CTRL + X to exit the nano editor.

FInally, we can run our Yacht install with the command:

docker-compose up -d

You can see if the download and install went well, after you get the "done" message in the terminal window.  Use the command

docker-compose logs -f

to view the logs for the yacht container.

If you don't see any errors, then you should be able to open a browser window and start going to the address of you host machine, and the port you set in the docker-compose file.

In my case my host ip is 192.168.10.141 and I changed the port from 8000 to 8016.  So, I went to

http://192.168.10.141:8016

You, should of course visit your own host IP and port.

You should see the Yacht login screen. The default login credentials are:

username: admin@yacht.local

password: pass

You should login, then change these by clicking the little down arrow to the right of the user in the upper right of the window, and select user profile, then Change Password.

Once you've changed the user email and password, you should logout, and log back in to make sure your new credentials are working.

Now, you can begin to explore all of the features of Yacht.  Check out my video to see all of the great things you can do with Yacht.

Support My Channel

Support my Channel and ongoing efforts through Patreon: https://www.patreon.com/bePatron?u=234177

Portainer

Docker management Web User Interface

Portainer

Installing Portainer-CE and / or Portainer Agent

I'm making this as an update to my Portainer video that is now easily more than a year and a half old.  The good news is that the old video for Portainer install is really the same as this one will be, except that since the original video the Portainer team split the project into Portainer (a more advanced version of the software available to those who license it), and Portainer-CE (Community Edition) the fully open source version that eventually gets some of those more advanced features.  

For my uses and needs as a homelab user, Portainer-CE works just fine, and is a tremendous tool for managing my docker containers.

The second part of this tutorial is about installing Portainer Agent.  An agent software that allows the fully installed Portainer-CE to act as a frontend for your Docker containers on other host machines.  I also did an older video on how to use Portainer in this way, in particular with a Raspberry Pi as the secondary host, but it was, at best, clunky to get setup and working.  Portainer Agent, however, is a much simpler, and more straight-forward install.  

Additionally, I took the time to provide a good overview of the features in Portainer-CE / Portainer Agent, and it has gotten so much better since my original video.   I hope you'll enjoy this, and follow along in the video to get everything running.  

For those who prefer text instructions, keep reading.

Installing Portainer CE on your Host Machine

The commands I'm about to provide, are available on the Portainer Documentation site as well.

NOTE: You must have Docker installed already.  Docker does not get installed with Portainer, but instead Portainer-CE runs in Docker.

Now that you're ready, you'll want to run the following commands in the terminal of your selected Linux distro that's already got Docker (I prefer Docker-CE) installed.

  1. Setup a Portainer data volume.
docker volume create portainer_data

2. Install Portainer CE

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

Note - You can change the ports for both 8000, and 9000 on your host, by changing the port number on the left side of the colon in the command above.  If you already have something using either port 8000 and / or port 9000 on your host, then you should change these port numbers.  I only recommend that you do not use port 9001, as this is the port used for Portainer Agent.  

Once you run the command above, you can now navigate to your host machine's IP address and port 9000 to go through the admin first-time login process.

for me it was

http://192.168.7.125:9000

You should use the IP of your host machine, of course.

Install Portainer Agent on a Secondary Host

If you'd like to control more than one host running Docker containers, then Portainer Agent to the rescure.  You install Portainer Agent on any secondary host machines, then add them to your main Portainer machine via the Portainer-CE UI.  Nice, right?

NOTE: Again, you should have Docker already installed and running on these hosts, as Portainer, Portainer-CE, and Portainer Agent do not install docker, but instead run inside docker as their own containers.

To install Portainer Agent, run the following command on the terminal of your secondary host machine's.

docker run -d -p 9001:9001 --name portainer_agent --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/volumes:/var/lib/docker/volumes portainer/agent

Again, you can change the port if need be, by changing the port number on the left side of the colon in the command above.

Allow the container to install and start running, then from your main Portainer-CE install, navigate in the left pane to "Endpoints".

Click the "+ Add New Endpoint" button at the top of the screen, then enter the Name for the endpoint that makes the machine easy to identify, the local IP address and port 9001 (like 192.168.7.51:9001 ) in the Endpoint URL and Public IP address fields, add the host to any groups you have setup, and add any tags to the host you desire, then click the "+ Add Endpoint" button at the bottom of the form.

If you entered everything correctly, you'll see a list of hosts show up on the Endpoints screen.  

You can now access your local Portainer-CE install, as well as any Portainer Ageny machines you've added right from the UI on the Portainer-CE host.

Just click the 'Home' option in the left pane to switch between hosts, as well as see an overview of their statuses (up / down).

Support my Channel and Content

Support my Channel and ongoing efforts through Patreon:
https://www.patreon.com/bePatron?u=234177