Add Ec2 User To Docker Group

Add Ec2 User To Docker Group

Reading time1 min
#Cloud#DevOps#AWS#Docker#Linux#EC2

How to Add an EC2 User to the Docker Group: Simplify Your Docker Workflow on AWS

When working with Docker on an AWS EC2 instance, you might find yourself running every Docker command with sudo. While this works, it’s not the most elegant or secure way to manage containers. A better approach is to add your EC2 user to the Docker group, empowering you to run Docker commands without sudo.

In this post, I’ll show you how to quickly add your EC2 user—usually ec2-user for Amazon Linux—to the docker group. This small step streamlines your workflow and improves your experience managing containers remotely.

Why Add Your EC2 User to the Docker Group?

By default, Docker daemon runs as root and requires elevated privileges. Only users in the docker group can communicate with the Docker daemon without needing sudo. Here are a few reasons why adding your user to the docker group is beneficial:

  • Avoid typing sudo every time: Run docker ps, docker run, and more without prefixing commands with sudo.
  • Better security: Limit root access while still allowing container management.
  • Smoother scripting and automation: Scripts don’t have to handle privilege escalation explicitly.

Step-by-Step Guide: Adding EC2 User to Docker Group

Let’s walk through how you can do this on your running EC2 instance. I’ll assume you’re using Amazon Linux 2 or a similar Linux distribution where the default user is ec2-user.

1. Connect to Your EC2 Instance

SSH into your instance:

ssh -i /path/to/your-key.pem ec2-user@your-ec2-ip-address

2. Check if Docker Is Installed and Running

First, verify that Docker is installed:

docker --version

If you get a version number like Docker version 20.xx.x, great! If not, install Docker:

sudo yum update -y
sudo amazon-linux-extras install docker -y
sudo service docker start

3. Add Your User to the Docker Group

On most systems, installing Docker creates a system group called docker. You can add your current user (ec2-user) to it:

sudo usermod -aG docker ec2-user

Here’s what this command means:

  • usermod: modify a user account
  • -aG docker: append (-a) user to group (-G) named docker
  • ec2-user: the username we're adding

4. Log Out and Log Back In (or Reboot)

For group changes to take effect, your current SSH session must be refreshed:

exit
# Then reconnect:
ssh -i /path/to/your-key.pem ec2-user@your-ec2-ip-address

Alternatively, reboot your instance if preferred:

sudo reboot

5. Verify That You Can Run Docker Commands Without sudo

Once logged back in, test running a simple command:

docker ps

If it lists running containers (or an empty list) without asking for permission errors or requiring sudo, congratulations! You successfully added your EC2 user to the docker group.


Bonus: What If You Encounter Permission Issues?

If after logging back in you still get permission denied errors like:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json: dial unix /var/run/docker.sock: connect: permission denied

Double-check that:

  • The user is added correctly by running:

    groups ec2-user
    

    It should list docker among other groups.

  • The Docker service is running properly.

If needed restart the docker service again:

sudo service docker restart

Summary

Adding your EC2 Linux user to the Docker group is a small but powerful tweak that enhances usability and security when managing containers remotely on AWS.

Quick recap:

  1. SSH into your EC2 instance.
  2. Install and start Docker if needed.
  3. Add your user with:
    sudo usermod -aG docker ec2-user  
    
  4. Re-login or reboot.
  5. Run docker commands without sudo!

Try this next time you set up a container environment on AWS — it will save you time and headaches down the road.


Got questions? Drop them in the comments below or share how you customize your EC2 + Docker setup! Happy containerizing! 🚀🐳