15 Nisan 2018 Pazar

Docker container'a SSH ile bağlantı

Merhaba,
bu yazımda sizlere bir docker container'a SSH ile container dışından nasıl bağlanılacağını anlatacağım. Yani SSH servisini docker ortamında çalıştırmayı(Dockerize  SSH service) ve daha sonra bu servise terminal den erişimi göstereceğim.

Yapılacak işlemleri iki adımda özetlemek gerekirse;
- ilk olarak Dockerfile aracılığıyla ubuntu image'ı oluşturup bu image'ı container olarak çalıştıracağız.
- ikinci olarak ta çalıştırdığımız container'a SSH connection'ı yapacağız.

Dockerfile adında bir dosya oluşturup bu dosyayı düzenlemek için açın 

 $ touch Dockerfile && vi Dockerfile

Ubuntu image'ı oluşturmak için aşağıdaki satıları bu dosyaya ekleyin 

 FROM ubuntu:latest
MAINTAINER Levent YILDIZ <dev.levent.yildiz@gmail.com>

server1 adında bir docker yükü(image) oluşturun 

 $ docker build -t leventyildiz/server1:0.1 .

Oluşturduğunuz image'ı aşağıdaki komut ile çalıştırın 

 $  docker run -it leventyildiz/server1:0.1 bash

Varsayılan olarak  işletim sisteminde tanımlı olmayan aşağıdaki komutları bu  container da çalıştırmayı denediğinizde "command not found" mesajını göreceksiniz 

$  ip r l
$  ifconfig

İşletim sistemini update edin 

$  apt-get update 

Update işleminden sonra  varsayılan olarak gelmeyen  "net-tools", "iproute2", "iputils-ping", "openssh-server" paketlerini kurun 

$  apt-get install net-tools iproute2 iputils-ping openssh-server 

Bu kurulum işleminden sonra tekrar "ip r l " komutunu çalıştırarak  cihazın IP adresini görebilirsiniz 

$  ip r l 

SSH  bağlantısı esnasında kullanılmak üzere "passwd"  komutu ile root user şifresi oluşturun

$  passwd root 

sed ile sshd_config dosyasını güncelleyerek PermitRootLogin'e izin verin 

$  sed -i '/^PermitRootLogin/s/no/yes/' /etc/ssh/sshd_config
$  sed -i '/^PermitRootLogin/s/prohibit-password/yes/' /etc/ssh/sshd_config 

Değişiklikleri algılaması için ssh servisini restart edin 

$  /etc/init.d/ssh stop &&  /etc/init.d/ssh start 

Ssh kurulumu işleminden sonra container'ın Ip adresini ve diğer network bigilerini görüntüleyip bu cihaza SSH bağlantısı yapabilirsiniz.   

$  ip r l &&   ifconfig 

Terminal den yeni bir tab açarak bu container'a SSH bağlantısı yapın

$ ssh root@172.17.0.2 


SSH bağlantısından sonra cihaz(container) üzerinde bulunduğunuz dizini görüntüleyin 
 $ pwd

Hiç yorum yok:

Yorum Gönder