Deploy a CentOS container image with systemd enabled

In order to deploy a CentOS container with systemd enabled to perform and use commands as systemctl you could do the following:

Download the official Centos image with systemd integrated from DockerHub and create a file name Dockerfile on your current working directory. The following dockerfile will install/enable httpd package with yum and systemctl.

FROM centos/systemd
MAINTAINER "Your Name" you@example.com
RUN yum -y install httpd; yum clean all; systemctl enable httpd.service
EXPOSE 80
CMD ["/usr/sbin/init"]

Build your image:

docker build --rm --no-cache -t centos-sd-1 .

And then deploy a new container from your created image:

docker run --privileged --name centos-sd-1 -v /sys/fs/cgroup:/sys/fs/cgroup:ro -p 80:80 -d centos-sd-1

Verify that you can run successfully systemd commands:

[root@179a5c228835 /]# systemctl status httpd
‚óŹ httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2020-04-05 13:18:06 UTC; 9min ago
Docs: man:httpd(8)
man:apachectl(8)

One Reply to “Deploy a CentOS container image with systemd enabled”

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.