Top

Enable sshd service on CentOS7-systemd docker image

Sep 01, 2020 | 1219 views

#Linux #Docker


1. Build a centos7-systemd docker base image refer to official centos on docker hub

Dockerfile for systemd base image


FROM centos:7.8.2003
ENV container docker
RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == \
systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;
VOLUME [ "/sys/fs/cgroup" ]
CMD ["/usr/sbin/init"]

Build your base image

$ docker build --rm -t local/centos7-systemd .
2.  Build image with sshd service based upon above base image

Dockerfile of centos7-systemd-sshd 

FROM local/centos7-systemd
RUN yum -y install openssh-server openssh-clients; systemctl enable sshd.service;
CMD ["/usr/sbin/init"]

Build image

docker build --rm -t local/centos7-systemd-sshd .
3. Run a container of centos7-systemd-sshd refer to stackflow
docker run -it -d --name node2 --privileged -e container=docker \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro local/centos7-systemd-sshd /usr/sbin/init

Enter into container's terminal:

docker exec -it node2 bash

End


Leave a comment

0 comments