Docker container mimarisinde bazı durumlarda SSH erişimine ihtiyaç olabilir. Hazırlamış olduğunuz Linux tabanlı Dockerfile, SSH servisini içermiyor olabilir ve siz docker imajınızı çoktan run etmiş ve kullanıyor olabilirsiniz, böyle bir durumda tekrar Dockerfile hazırlamaktansa, docker konteynırımıza exec olarak SSH servisinin kurulumunu yapıp compose dosyamızda ssh portuna yönlendirme yapıp kullanabiliriz.
Bu durumu basic bir nginx konteynırı üzerinde açıklayalım,
Aşağıdaki kod bloklarınızı docker-compose.yml dosyanıza yapıştırarak, basic bir nginx imajı ayaklandırabilirsiniz.
version: ‘3’
services:
web:
image: nginx:latest
ports:
– “80:80”
– “2222:22” //ssh portu olarak 2222 belirledik, requestimizi 22 portuna yani ssh servisine forward edicek.

Compose dosyamızda network ayarı yapmadığımız için çalışma başlangıcımızda kurmuş olduğumuz portainer üzerinden (kurulum yapmayan varsa buraya tıklayarak portainer makalesini inceleyebilir) network’ ümüzü ‘bridge’ mode a çekelim.

Daha sonra portainer üzerinden konteynırımıza console yapıp hızlı bir şekilde openssh-server kurulumunu tamamlayabiliriz.

apt update && apt install openssh-server

Kurulum sonrasında nano /etc/ssh/sshd_config dosyasını açarak;
PermitRootLogin Yes -> Ekleyelim kaydedip çıkalım.
service ssh restart -> SSH servisini restart edelim.
Şimdi host bilgisayarımızdan 2222 olarak belirlediğimiz porta ssh atarak konteynırımıza ssh ile ulaşabiliriz.

Not: SSH servisi konteynır üzerindeki çalışmaları kolaylaştırmak için geliştirme ortamında kullanılabilir fakat ssh servisinin konteynır üzerinde açık olması önerilmemektedir.
Faydalı Olması Dileklerimle,