Open In App

Docker: How To Use Bash With An Alpine Based Docker Image?

Last Updated : 15 Mar, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

Docker is a tool that is used to encapsulate the application with all its dependencies, called Docker containers. On the other hand, Alpine Linux is a lightweight and minimal Linux distribution. Here in this guide, I will first discuss what Docker is. Then I will discuss what Alpine is. After this, I will walk you through the different steps to install and use bash on an Alpine-based Docker image.

What is Docker?

Docker is a containerized tool used to containerize the application along with its dependencies. This means it helps in encapsulating the application and its dependencies into compact units called Docker containers. These Docker containers have all the dependencies, such as code, runtime, and other essential libraries, to run the application. Here, a developer writes a simple Dockerfile for an application, mentioning the base image, commands to install dependencies, and commands to run the Docker image. Then the Dockerfile is used to build a Docker image. These Docker images are lightweight and portable. Developers can now run their applications on any operating system; the only condition is that Docker should be installed on that system. Running Docker containers uses very few resources on a system. This enables developers to run multiple Docker containers on a single machine. Using multiple Docker containers on a machine results in maximum resource utilization of the system and also decreases the overall infrastructure cost for running an application. Overall, we can say Docker has become a popular and important tool for organizations to seamlessly run and test their applications on any machine without facing any hardware-related issues.

What is Alpine?

Alpine is an open-source and simple Linux distribution system. It uses a busybox by default. The busybox provides a very minimal shell environment called ash. This shell environment supports some basic Linux commands like ls, cd, etc. Alpine is also very secure, as it is so minimalist and decreases the attack surface. It uses very few resources. Alpine Linux uses its package manager, which is apt for dependency resolution. Alpine has become a very popular choice to run docker containers as it helps in building lightweight and efficient docker images. Overall, we can say Alpine is a lightweight, simple, secure, and minimalist Linux distribution system used in containerized applications and other environments where security and efficient resource management are top priorities.

Pre-requisites

Before moving on to the next section, make sure that you have installed Docker on your system. If now installed, then follow these detailed geeks for geeks articles to install Docker on your system.

Steps To Use Bash With An Alpine Based Docker Image

Step 1: First create a dockerfile.

FROM alpine:latest

Dockerfile

Step 2: Build the docker image using docker build command.

docker build -t alpine_linux .

docker-build

Step 3: Now try to go inside the alpine_linux using the command below.

docker run -it alpine_linux /bin/bash

error

You will observe that you can not access the bash shell . But if you try to access using /bin/sh , then you can go inside the container.

sh-access

Step 4: Now update the dockerfile . Here i have mentioned the commands to install bash on the docker container.

FROM alpine:latest
RUN apk update && apk add bash

updated-dockerfile

Step 5: Now again build the new docker image.

docker build -t alpine_linux . 

build-updated-image

Step 6: Now try to access using /bin/bash . You can now access the bash shell inside the alpine_image without facing any error.

docker run -it alpine_linux /bin/bash

bash-access

Conclusion

Here in this article you have first learned what is docker. Then you have learned about alpine linux and its features. After this you have created a dockerfile which is used build an alpine based docker image. Then you have observed the error while trying to access the alpine image using /bin/bash. So to solve this error you have installed bash on the alpine docker container and then successfully accessed the alpine docker container using /bin/bash.

How to use bash with an Alpine based docker image – FAQ’s

What is shell used by Alpine linux by default ?

Alpine linux uses a shell named ash by default . This provides basic linux commands like cd , ls , etc .

What is the package manager used in Alpine ?

Alpine uses apk as its package manager .

What are the things i can perform using bash but not using ash ?

Using bash we can see the command history but we can not observe the command history using ash .

Why Alpine linux is considered to be secure ?

Alpine linux is secure because it is minimalistic and it also decreases the attack surface by using libc and busybox .

What is the docker command used to access bash shell of a container ?

The docker command used to access bash shell of a container is : docker run -it <container_name or container_id> /bin/bash



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads