Why Docker: Unlocking the Power of Containerization 🚀
Docker provides a fantastic way to quickly explore and use tools, services, or applications without the hassle of manual installation and dependency management. Here are some cool Docker images you can experiment with, along with instructions to get started.
Basic Docker Commands to Know
Before diving into specific images, here are some essential Docker commands every user should know:
docker images
– List all images on your system.docker ps -a
– Show all containers, including stopped ones.docker volumes ls
– View all Docker volumes.docker networks ls
– List all Docker networks.
Cool Docker Images to Try Out
1. linuxserver/foldingathome
Overview
The Folding@Home project lets you contribute to disease research, including cancer, Alzheimer’s, and COVID-19, by donating unused computational power. This Docker image provides an easy way to join the network. You can set the account name and machine name in the CLI or do it later. If you have an NVIDIA GPU, you can enable it for better performance.
Stats:
⭐ Over 1M+ pulls
How to Run
docker run -d \
--name=foldingathome \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-e ACCOUNT_TOKEN= \
-e MACHINE_NAME= \
-e CLI_ARGS= `# optional` \
-p 7396:7396 `# optional` \
-v /path/to/foldingathome/data:/config `# optional` \
--restart unless-stopped \
lscr.io/linuxserver/foldingathome:latest
Refer to the official docs here.
2. linuxserver/libreoffice
Overview
A containerized version of LibreOffice that allows you to edit documents directly from within a containerized environment.
Stats:
⭐ Over 500K+ pulls
How to Run
docker run -d \
--name=libreoffice \
--security-opt seccomp=unconfined `# optional` \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-p 3000:3000 \
-p 3001:3001 \
-v /path/to/config:/config `# optional` \
--restart unless-stopped \
lscr.io/linuxserver/libreoffice:latest
Refer to the official docs here.
3. linuxserver/firefox
Overview
Run a full instance of Firefox in a container. Great for testing or maintaining a secure browsing environment.
Stats:
⭐ Over 500K+ pulls
How to Run
docker run -d \
--name=firefox \
--security-opt seccomp=unconfined `# optional` \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Etc/UTC \
-e FIREFOX_CLI=https://www.linuxserver.io/ `# optional` \
-p 3000:3000 \
-p 3001:3001 \
-v /path/to/config:/config `# optional` \
--shm-size="1gb" \
--restart unless-stopped \
lscr.io/linuxserver/firefox:latest
Refer to the official docs here.
4. corentinth/it-tools
Overview
A collection of handy developer tools available as a web app. Includes encoders, decoders, converters, and more, all with great UX.
Stats:
⭐ Over 5M+ pulls
How to Run
docker run -d \
--name=it-tools \
-p 8080:80 \
corentinth/it-tools
Refer to the official docs here.
5. ollama/ollama
Overview
Run large language models with minimal setup. Perfect for experimenting with AI and machine learning tasks.
Stats:
⭐ Over 5M+ pulls
How to Run
docker run -d \
--name=ollama \
-p 11434:11434 \
-v ollama:/root/.ollama \
ollama/ollama
Refer to the official docs here.
Best Practices
Use
--rm
in thedocker run
command for temporary containers, e.g., running a Java file:docker run --rm openjdk:latest java HelloWorld.java
Use Docker Scout Quickview to check for vulnerabilities in Docker images:
docker scout quickview <image-name>
Use Docker networks to isolate containers and allow communication between specific ones:
docker network create my_network
Docker Compose File for All Images
Here’s a docker-compose.yml
to run all the above images together. It uses local ports starting from 3001
and demonstrates two isolated networks.
version: "3.9"
networks:
isolated_network1:
isolated_network2:
services:
foldingathome:
image: lscr.io/linuxserver/foldingathome:latest
container_name: foldingathome
networks:
- isolated_network1
environment:
PUID: 1000
PGID: 1000
TZ: Etc/UTC
ACCOUNT_TOKEN: ""
MACHINE_NAME: ""
ports:
- "3000:7396"
libreoffice:
image: lscr.io/linuxserver/libreoffice:latest
container_name: libreoffice
networks:
- isolated_network2
environment:
PUID: 1000
PGID: 1000
TZ: Etc/UTC
ports:
- "3001:3001"
- "3002:3002"
firefox:
image: lscr.io/linuxserver/firefox:latest
container_name: firefox
networks:
- isolated_network1
environment:
PUID: 1000
PGID: 1000
TZ: Etc/UTC
ports:
- "3003:3003"
- "3004:3004"
it-tools:
image: corentinth/it-tools
container_name: it-tools
networks:
- isolated_network2
ports:
- "3005:80"
ollama:
image: ollama/ollama
container_name: ollama
networks:
- isolated_network1
volumes:
- ollama:/root/.ollama
ports:
- "3006:11434"
To run all the services at once, use docker-compose up -d
. This will start all containers in the background. You can access them in your browser using the defined ports. To stop and remove all the containers, use docker-compose down
.
Conclusion
These Docker images showcase the incredible range of use cases Docker supports—from contributing to scientific research to running AI models, secure browsing, and developer tools. Each of these is lightweight, easy to run, and can be explored with just a few commands.
Refer to Docker Desktop installation here. Stay tuned for more Docker image reviews and tutorials!