Container systems/services like Docker or LXD/LXC or with cloud services like Amazon Elastic Container Service (EC2), Amazon Elastic Container Service for Kubernetes, Microsoft Azure Kubernetes Service and Google Kubernetes Engine (GKE), are in my opinion, the best solution for software development in general, because you can divide all parts into microservices, test, use and share them separately and a use of a clever strategy to get away from monolithic systems.
container systems are simply the best for developing software because i can quickly and easily set up and start certain development environments or systems, test and try them out, and the resources are used and managed better than with vm's or a monolithic system.
In my opinion, I should have at least 3 separate systems for software projects, such as my development environment, my test environment and my production environment, and it would be best if these were physically and logically separate(now makes no sense for very small projects to separate physically and logically at all).
nothing is safe and not only the configuration of docker plays a role here, but the configuration of the whole system itself.
How is my operating system configured, what other software is running on it, how is my network set up with my firewall, how i share and use my groups and data, etc..
You can see that you can't answer all of this with one answer and there is a lot to consider
In any case, working and familiarizing yourself with container services like docker is a gain for you
Installing Docker itself is not inherently risky, it is important to understand the potential risks associated with creating Docker groups.
Docker groups allow users to run Docker containers without root privileges, which can be convenient and can improve security.
If you not managed properly, Docker groups can also create security vulnerabilities or if a user is added to the group without proper authentication and authorization, that user may be able to run arbitrary Docker containers, potentially leading to data breaches, malware infections, and other security incidents.
Ensure that Docker groups are created and managed in a secure manner like:
- Limiting the number of users who have access to the Docker group
- Users who are added to the Docker group are properly authenticated and authorized
- Monitoring Docker container activity to detect and prevent unauthorized access and malicious activity
- Keeping Docker up to date with the latest security patches and updates
- Unrestricted traffic
- Some versions of Docker allow all network traffic on the same host by default
- Vulnerable and malicious container images
- Unrestricted access
- Vulnerable host kernel
- Container breakouts
Creating the docker group by itself does not imply a security risk (which is what you have been asking). But adding a user to this group may increase your attack surface (which is what you probably wanted to ask). The actual security risk depends on your threat model.
https://security.stackexchange.com/questions/178542/is-adding-docker-group-not-a-good-idea
Docker security
sudo
or via adding your own user account to thedocker
group. If you start a malicious or compromised container/image, then that is bad no matter how it's started. The concern aboutsudo
vsdocker
group is more about which users are allowed to start containers, and if there is just one user, it makes no real difference which path is chosen. – Torque Apr 21 '23 at 11:51sudo
or adocker
group, but from who has access to it. He focuses on another aspect, which is why I commented here – Torque Apr 24 '23 at 15:33