Data Centers

How to get Docker Shipyard up and running with a single command

If you're looking for a user friendly Docker GUI, you can't go wrong with Shipyard. Learn how one command can get this web-based tool ready to manage your containers.

dockerwhalehero.jpg
Image: Jack Wallen

If you're using Docker to create and deploy containers, then you probably know the management of those containers can get a bit unwieldy after a while; this is especially true for larger deployments with numerous images and containers. One way to avoid the stress of larger-scale Docker usage is by way of a web-based GUI.

The idea of installing a GUI to manage your Docker containers might concern you, but fear not—with one command, you can get Shipyard up and running and ready to manage your containers.

SEE: Containers: The smart person's guide (TechRepublic)

What is Shipyard?

Shipyard is a web-based tool based on Docker Swarm that enables you to manage Docker resources, including containers, images, private registries, and more...all via a user-friendly GUI tool.

Oddly enough, it's built via a Docker image, so to "install" Shipyard, you use Docker. You can go about this the hard way, or you can deploy this handy tool the easy way. I'll show you the easy route, and I'll demonstrate it on the Ubuntu Server 16.04 platform with Docker already installed (which is a must).

SEE: Free ebook—The cloud v. data center decision (TechRepublic)

How to download and run Shipyard

Docker has created a simple to use script that automates the process of deploying Shipyard. Open a terminal on your Docker server and issue the following command:

curl -sSL https://shipyard-project.com/deploy | bash -s

Once the command runs, point a browser to http://SERVER_IP:8080 (SERVER_IP is the actual IP address of your server). You will be required to log in using these default credentials:

  • Username - admin
  • Password - shipyard

How to change the admin password

One of the first things you should do is change the admin user password. To do this, log in to Shipyard and click the ACCOUNTS tab. You will see the admin account listed (Figure A).

Figure A

Figure A

The admin account is ready for a password change.

Click the looking glass icon in the far right column and then, in the resulting screen, enter a new password for the admin user. If you're more concerned about security, I suggest creating a new administrator account and then deleting the default admin account—just make sure you log in with your new administrator account before deleting the default. After you take care of the admin user, you can start pulling images, deploying containers, adding registries, checking nodes, and checking events.

One caveat: I have found that Shipyard doesn't seem to recognize when it is part of a Docker Swarm as either a node or a leader. To test this, I set up a quick 2-node, 1-leader swarm, and Shipyard failed to recognize the swarm. Checking the Swarm leader with the command sudo docker node ls shows the nodes and leader clearly. However, refreshing the Shipyard does not show the nodes/leaders (Figure B).

Figure B

Figure B

Nothing to see here, folks.

I have found a solution: Install Shipyard (as detailed above) on your Swarm leader, and then log in to one of your Swarm nodes and do the following.

  1. Create a new directory with the command mkdir shipyard.
  2. Change into the newly created directory.
  3. Create a file named start-node.sh with the contents below.
  4. Save and close the file.
  5. Give the file executable permissions with the command chmod u+x start-node.sh (SERVER_IP is the IP address of your Swarm leader).
  6. #!/bin/bash
    # Exit upon errors.
    set -e
     
    # Must have root to run Shipyard.
    if [[ $EUID -ne 0 ]]
    then
       echo "This script must be run as root."
       exit 1
    fi
     
    # Download Shipyard deployment script if it isn't already downloaded.
    if [ ! -f deploy ]
    then
        wget https://shipyard-project.com/deploy
        chmod +x deploy
    fi
     
    # Start Shipyard node.
    ACTION=node
    DISCOVERY=etcd://SERVER_IP:4001
    . deploy
  7. Save and close that file and issue the command sudo ./start-node.sh. This will add the node to the leader in such a way that Shipyard will be able to see it (Figure C).

Figure C

Figure C

Shipyard can now see your nodes.

Follow the above steps on each of your Docker Swarm nodes, so Shipyard can detect them all.

SEE: Docker LinuxKit: Secure Linux containers for Windows, macOS, and clouds (ZDNet)

Still more to do

The next time we visit Shipyard, we're going to talk about deploying containers with this user-friendly, web-based GUI. Until then, poke around the tool and start getting familiar with what it offers and how it works.

Also see

About Jack Wallen

Jack Wallen is an award-winning writer for TechRepublic and Linux.com. He’s an avid promoter of open source and the voice of The Android Expert. For more news about Jack Wallen, visit his website jackwallen.com.

Editor's Picks

Free Newsletters, In your Inbox