Sunday, November 18, 2018

Docker Container Management from Cockpit

Cockpit can manage containers via docker. This functionality is present in the Cockpit docker package.

Cockpit communicates with docker via its API via the /var/run/docker.sock unix socket. The docker API is root equivalent, and on a properly configured system, only root can access the docker API. If the currently logged in user is not root then Cockpit will try to escalate the user’s privileges via Polkit or sudo before connecting to the socket.

Alternatively, we can create a docker Unix group. Anyone in that docker group can then access the docker API, and gain root privileges on the system.

[root@rhel8 ~]yum install cockpit-docker   -y 

Once the package installed then "containers" section would be added in the dashboard and we can manage the containers and images from the console.

We can search or pull an image from docker hub just by searching with the keyword like nginx centos.  











Once the Image downloaded we can start a container from it based on our specifications 








Thanks! Share it!







Saturday, November 17, 2018

Remote Systems Management With Cockpit

The cockpit is a Red Hat Enterprise Linux web-based interface designed for managing and monitoring your local system, as well as Linux servers located in your network environment.

In RHEL 8 Cockpit is the default installation candidate we can just start the service and then can start the management of machines. For RHEL7 or Fedora based machines we can follow steps to install and configure the cockpit. 

Following are the few features of cockpit. 
  • Managing services
  • Managing user accounts
  • Managing and monitoring system services
  • Configuring network interfaces and firewall
  • Reviewing system logs
  • Managing virtual machines
  • Creating diagnostic reports
  • Setting kernel dump configuration
  • Configuring SELinux
  • Updating software
  • Managing system subscriptions

Installation of cockpit package. 
[root@rhel8 ~]dnf install cockpit cockpit-dashboard  -y 

We need to enable the socket. 
[root@rhel8 ~]systemctl enable --now cockpit.socket

If firewall is running on the system then a rule should be added to allow access it. 
[root@rhel8 ~]firewall-cmd --add-service=cockpit --permanent
[root@rhel8 ~]firewall-cmd --reload

Then we can access the cockpit console using the URL. 
https://server.name.com:9090


ADD REMOTE SYSTEMS
On remote machine, we need to install the cockpit package. 
[root@centos7 ~]yum install cockpit

Go to url https://cockpit-server:9090/dashboard

click on + botton and add the remote server with IP address and username and password.

Once the server added then we would the list of servers just click on the server we can manage all the things on the server from GUI console. 




Containers Without Docker on RHEL/Fedora

Docker is perfectly doing well with the containerization. Since docker uses the Server/Client architecture to run the containers. So, even if I am a client or developer who just wants to create a docker image from Dockerfile I need to start the docker daemon which of course generates some extra overhead on the machine.  Also, a daemon that needs to run on your system, and it needs to run with root privileges which might have certain security implications.

Here now the solution is available where we do not need to start the daemon to create the containers. We can create the images and push them any of the repositories and images are fully compatible to run on any of the environment. 

Podman is an open-source Linux tool for working with containers. That includes containers in registries such as docker.io and quay.io.



let's start with the podman to manage the containers. 



Install the package 

[root@rhel8 ~]# dnf install podman -y 
OR
[root@rhel8 ~]# yum install podman -y 


If still wants to use the docker cli we can install podman-docker package to emulate the docker cli. 

[root@rhel8 ~]# dnf install podman-docker


System information can be checked using the below command. 

[root@rhel8 ~]# podman info 


















The command shows the host information and as well as the registries names. 

Default it talks to 
  - registry.redhat.io
  - quay.io
  - docker.io
podman has all and similar commands like docker client. 

[root@rhel8 ~]# podman --help 
[root@rhel8 ~]# podman images 
[root@rhel8 ~]# podman pull ubuntu 

















We can start the container also in the same form as we start with the docker.

[root@rhel8 ~]# podman container run -dit -p 8080:80 nginx


Verify the container must be running. 

[root@rhel8 ~]# podman ps 


Web server is available now.









So, now it's no more a Docker container. it is simple a Container.