linux etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
linux etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

21 Nisan 2020 Salı

Docker üzerinde Postgresql çalıştırma ve yedekleme işlemi

Merhaba,
bu yazımda sizlere docker üzerinde postgresql'i ayağa kaldırmayı ve docker üzerinde çalışan DB'in verilerini kendi bilgisayarınıza kaydetmeyi paylaşacağım.

ilk olarak official postgres image'ını dockerhub tan çekip postgres1 adında bir container oluşturacağız.  postgres1'i container olarak çalıştırıp üzerinde çeşitli değişiklikler yaptıktan sonra container'a ait volume dosyalarını alıp  container'ı sileceğiz.

Daha sonra yeniden postgres image'ından postgres2 adında bir container oluşturacağız. 2. container'ı oluştururken  bir önceki container dan aldığımız volume dosyasını kullanacağız. Bu sayede eski kayıtların yeni container da başarılı bir şekilde erişilebilir olduğunu göreceğiz.

Aşağıdaki işlemleri terminal üzerinde yaparak adımları ve sonuçlarını gözlemleyebilirsiniz.

Docker hub üzerinden postgres image'ını çekerek postgres1 adında bir container oluşturun.
$ docker run -d -p 5432:5432 -v postgres-data:/var/lib/postgresql/data  --name postgres1 postgres 

  -v: parametresi ile oluturacağınız volume dosyasının adını ve adresini belirtin

postgres1'in loglarına bakarak container'ın son durumu hakkında bilgiler edinebilirsiniz
$ docker logs postgres1 

oluşturduğunuz container'ı çalıştırın
$ docker exec -it postgres1 sh 

-it : interactive terminal(çalıştırdığınız container'ın içinde sh komutlarını çalıştırmak için)

mydb adında bir veri tabanı oluşturun
 $ createdb -U postgres mydb

Bir postgres CLI(Command Line Interface) aracı olan psql ile oluşturduğunuz veritabanına bağlanın
 $ psql -U postgres mydb

bağlantı işleminden sonra list database anlamındaki \l komutunu çalıştırın
$ \l 

Veritabanı versiyonunu görmek için aşağıdaki komutu çalıştırabilirsiniz
 $ select version();

mydb içerisinde id ve name sütunları olan people adında bir tablo oluşturun
$ CREATE TABLE people (id int, name varchar(80));

Oluşturduğunuz tabloya name:mark ve id:1 olacak şekilde bir kayıt girin(insert).
$ INSERT INTO people (id,name) VALUES (1, 'Mark'); 

Aşağıdaki select cümlesini çalıştırarak insert ettiğiniz kaydı görebilirsiniz.
$ SELECT * FROM people; 

\q  komutunu çalıştırarak psql tool'undan çıkış yapın
$ \q 

exit komutuyla container dan da çıkış yapın
$ exit 

container'ı restart edin
$ docker stop postgres1 

$ docker start postgres1 

container'ı kapatıp tekrar ayağa kaldırdığımızda veriler kaybolmayacaktır.

volume inspect komutunu çalıştırarak oluşturduğunuz volume dosyasının bilgilerine erişilebilirsiniz
$ docker volume inspect postgres-data 

çıktı:
[
    {
        "CreatedAt": "2020-02-07T16:03:34+03:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/postgres-data/_data",
        "Name": "postgres-data",
        "Options": null,
        "Scope": "local"
    }


Docker'ı host ettiğiniz(kişisel bilgisayarınız) makinenin terminalinden _data dizininin içeriğine ls komutuyla bakabilirsiniz
$ ls /var/lib/docker/volumes/postgres-data/_data/

Bilgisayarınızda oluşturduğunuz postgres1 adlı container'ı silin
$ docker rm -f postgres1 

bu durumda veriler kişisel bilgisayarınızda kalacaktır. Herhangi bir veri kaybı olmayacaktır.

Elinizde bulunan volume verisini attach ederek postgres2 adında bir container oluşturun.
$ docker run -d -p 5432:5432 -v postgres-data:/var/lib/postgresql/data --name postgres2 postgres 

oluşturduğunuz postgres2 adlı container'ı çalıştırıp ssh üzerinden bağlanın
 $ docker exec -it postgres2 sh

psql aracı ile tekrar veritabanına bağlanın
 $ psql -U postgres mydb

Aşağıdaki select sorgusunu çalıştırdığınızda Herhangi bir veri kaybı olmadığını görebilirsiniz.
 $ SELECT * FROM people;


kaynak:https://markheath.net/post/exploring-postgresql-with-docker


21 Şubat 2018 Çarşamba

linux işletim sisteminde bilgisayar adını(static hostname) değiştirme

Merhaba, bu yazımda ubuntu üzerinde static hostname'in nasıl değiştirileceğini paylaşacağım. Aşağıdaki adımları takip ederek sadece ubuntuda değil diğer linux türevi işletim sistemlerinde de aynı şekilde isim güncellemesi yapabilirsiniz.

ilk olarak terminali açarak aşağıdaki komut ile  mevcut durumdaki  bilgisayar adını  görüntüleyin 
$ hostnamectl

çıktı aşağıdaki gibi olacaktır: 
 Static hostname: devops
        Icon name: computer-vm
          Chassis: vm
       Machine ID: 42b361d11ff5cad90f4aac4159f49475
          Boot ID: 1535b45876f545aba915d393ce1231e2
   Virtualization: vmware
 Operating System: Ubuntu 16.04.3 LTS
           Kernel: Linux 4.4.0-87-generic
     Architecture: x86-64

mevcut durumda "devops" olan bilgisayar adını(Static hostname) "TEST_BILGISAYARI" olarak değiştirelim
 $ hostnamectl set-hostname 'TEST_BILGISAYARI'

kontrol için tekrar  bilgisayar adını  görüntüleyin 
 $ hostnamectl

çıktı aşağıdaki gibi olacaktır:  
 Static hostname: TEST_BILGISAYARI
      Icon name: computer-vm
        Chassis: vm
     Machine ID: 42b361d11ff5cad90f4aac4159f49475
        Boot ID: 1535b45876f545aba915d393ce1231e2
 Virtualization: vmware
Operating System: Ubuntu 16.04.3 LTS
         Kernel: Linux 4.4.0-87-generic
   Architecture: x86-64