Docker Docker-Toolbox Windows/Mac/Ubuntu

Docker-Toolbox for Windows Kurulumu

Alti seneden beridir ilk kez bir Microsoft Desktop isletim sistemi olan W10 Enterprise kurdum bu is icin, gulzemis Mac den sonra hala yeterince etkileyici degil ama dolar sagolsun ilerde bizi MACsiz birakabilir bizi ama halen alternatifler mevcut.

Bu toolbox icersinde ne var ?

  • Docker CLI client for running Docker Engine to create images and containers
  • Docker Machine so you can run Docker Engine commands from Windows terminals
  • Docker Compose for running the docker-compose command
  • Kitematic, the Docker GUI
  • the Docker QuickStart shell preconfigured for a Docker command-line environment
  • Oracle VM VirtualBox

Oncelikle https://github.com/docker/toolbox/releases/tag/v1.12.2 adresiden DockerToolbox-1.12.2.exe ‘yi indirin.

Bu satirlari yazarken farkettim ki Docker Engine soz konusu degil fakat Docker for Windows ile artik native olarak Hyper-v uzerinde calistirabiliyor hatta Docker for Windows download ettigimizde kendisi compose , engine , machine ve cli> bilesenlerini kuruyor tek olayimiz bizim ESX uzerine kurdugumuz VM in simdilik Nested virtualization desteginin olmamasi🙂

Once Docker-Toolbox for Windows kuralim VirtualBox ile sonra Docker for Windows ile devam ederiz.

Daha sonra Nested Virtualization olayini aktive edelim cunku DockerToolbox’da ihtiyaci olacak VT-x/AMD-v ozelliklerine. Belki siz fiziksel bir makinede veya aktive edilmis durumda olabilirsiniz bunun icin sadece cli> dan veya powershell> den systeminfo.exe calistirdigimizda baska bir hypervisor’un oldugunu ve Hyper-v kuramayacagimizi haliyle VT-x/AMD-v BIOS dan aktive edilmedigine dair bir bilgimiz olacak (bakiniz en alt satira).

screen-shot-2016-11-10-at-16-14-41

Once ESX nodunu SSH’e acalim

Islem yapacagimiz sanal makineyi oncesinde kapatalim

Login olup /etc/vmware/config guncelleyelim (Herhangi bir reboot islemine gerek yok)

[root@bigbigesx03:~] echo ‘vhv.allow = “TRUE”‘ >> /etc/vmware/config

Test etmek isterseniz islemi yapacaginiz sanal makineyi actiktan sonra vhv kelimesini vmware.log’uda arattirin

[root@bigbigesx03:/vmfs/volumes/572b5b95-7133f9e8-b45a-ac162db76b00/w10] grep “vhv” vmware.log

2016-11-11T06:58:09.285Z| vmx| I120: DICT                 vhv.allow = “TRUE”

2016-11-11T06:58:09.286Z| vmx| I120: DICT                vhv.enable = “TRUE”

2016-11-11T06:58:09.286Z| vmx| I120: DICT                 vhv.allow = “TRUE”

2016-11-11T06:58:09.415Z| vmx| I120: OvhdMem OvhdUser_vhvCachedVMCS              :       4      4      – |      4      4      –

2016-11-11T06:58:09.415Z| vmx| I120: OvhdMem OvhdUser_vhvNestedAPIC              :       4      4      – |      4      4      –

Windows 10 kurulu makineyi durdurup ilgili degeri asagidaki gibi guncelleyin 

screen-shot-2016-11-10-at-16-45-32

Ufak bir deger eklememiz gerekiyor sanal makinenin vmx dosyasina , bunu ilgili ekrandan yapabiliyor veya sanal suncuyu Inventory’den cikartip, duenleyip tekrar iceriye alabilirsiniz ama gerek yok !

hypervisor.cpuid.v0 = FALSE

screen-shot-2016-11-11-at-19-01-44

Daha sonra VM i calistirin ve tekrarnda systeminfo.exe calistirin ve asagidaki satirlari gormeniz dilegiyle🙂

screen-shot-2016-11-11-at-19-06-54

Toolbox’i kurmaya baslayalim

screen-shot-2016-11-10-at-16-24-25

Bunun gibi Windows’un guvenlik sorulari gelecektir, bu ve bundan sonrakilere Yes diyip gecelim

screen-shot-2016-11-10-at-16-24-39

Yardimci olalim Docker Toolbox gelistirmesine ve NEXT

screen-shot-2016-11-10-at-16-24-55

Path de guzel

screen-shot-2016-11-10-at-16-25-03

Tum bilesenleri kuralim

screen-shot-2016-11-10-at-16-25-36

NDIS 5 Secmedim

screen-shot-2016-11-10-at-16-27-13

ve go ..

screen-shot-2016-11-10-at-16-28-11

Toolbox ayni zamanda VirtulBox kurulumu yapacagindan asagidaki gibi birtakim sorulara gelecek karsimiza

screen-shot-2016-11-10-at-16-29-54

Bitirelim

screen-shot-2016-11-10-at-16-30-21

Windows uzerinde native docker engine kosamayacagindan (simdilik) VirtualBox’in uzerinde ufak bir VM yaratmasi gerekecek Boot2Docker iso’sundan bunun icin desktop’daki –> Docker Quickstart Terminal dugmesini tiklayin

screen-shot-2016-11-10-at-16-31-57

ISO Download

screen-shot-2016-11-11-at-10-07-17

Birkac guvenlik sorusu daha

screen-shot-2016-11-11-at-10-07-46

Docker komut satiri emrinize hazir

screen-shot-2016-11-11-at-10-10-26

Docker-machine emrinize hazir

screen-shot-2016-11-11-at-10-14-18

Bundan sonrasi icin diyelimki uzak bir Ubuntu sunucumuz var ve windows uzerinde bu makineyi yonetmek istiyoruz. Bilmemiz gereken sey bizim windows makineden ilgili Ubuntu sunucumuza SSH yapiyor olmamiz , SSH yaparken kullanacagimiz kulanicinin sudo hakki olan ve sifre ihtiyaci olmadan (passwordless) islemler yapabiliyor olmali ve elimizde bir cift public/private key olmali ve bu public key (id_rsa.pub) ilgili Ubuntu sunucusunun ilgili kullanicisinin authorized_keys dosyasinda yer almali. Daha fazlasi icin ilgili makaleyi inceleyebilirsiniz.

Fakat burada bizim icin bir tek onemli olan nokta su ki , komut satirinda ilgili public_key yolunu belirtirkem “\” degil “/” kullanmamiz gerekiyor.

Soyle yaptim , hali hazirda MAC’imde yaratmis oldugum (sizin linux makinenizde yaratmis oldugunuz da olabilir) id_rsa ve id_rsa.pub dosyalarini C:\Users\vahric\.ssh dizini altina kopyaladim (.ssh elle actim).

Komut su sekilde

C:\Users\vahric>docker-machine create –driver generic –generic-ip-address=10.111.21.164 –generic-ssh-user=noroot –generic-ssh-key=”C:/Users/vahric/.ssh/id_rsa” DT1

Simdi aktif nodumu degistiriyorum

C:\Users\vahric>docker-machine env DT1
SET DOCKER_TLS_VERIFY=1
SET DOCKER_HOST=tcp://10.111.21.164:2376
SET DOCKER_CERT_PATH=C:\Users\vahric\.docker\machine\machines\DT1
SET DOCKER_MACHINE_NAME=DT1
REM Run this command to configure your shell:
REM @FOR /f “tokens=*” %i IN (‘docker-machine env DT1’) DO @%i

Cli> da sadece @FOR /f “tokens=*” %i IN (‘docker-machine env DT1’) DO @%i bunu calistirabilirsiniz veya hepsini copy/paste yapin

ve

C:\Users\vahric>docker run hello-world

iste hepsi bu

Docker For Windows

Geliyorrrrrrr …….

Not: Bu makale henuz tamamlanmamistir.

Ubuntu 16.04.x uzerinde Docker Kurmak

Ilgili kurulum yontemi Docker tarafindan yonetilen, yayinlanmis ve en son version Docker kurmak icin yapilmasi gerekenleri gosteriyor. Ubuntu tarafindan yontilen ve yayinlanan paketler icin ise Ubuntu’nun yayinladigi dokumanlari incelemek gerekiyor.

Eski version Ubuntu kullananlar icin APT Repo tanimlarina dikkat, Docker desteklemiyorum artik diyor 14.x ve 15.x icin.

–> Kernel 3.10 ve uzeri olmali , kontrol icin asagidaki komutlari calistirin

noroot@dockernode1:~$ cat /etc/lsb-release

DISTRIB_ID=Ubuntu

DISTRIB_RELEASE=16.04

DISTRIB_CODENAME=xenial

DISTRIB_DESCRIPTION=”Ubuntu 16.04.1 LTS”

noroot@dockernode1:~$ uname -r

4.4.0-45-generic

–> Varsayili olarak kurulu olmus olmali, olmasaydi asagidaki ilgili paketleri kurmaniz gerekiyor.

sudo apt-get install apt-transport-https ca-certificates

Ilgili GPG key girin

sudo apt-key adv –keyserver hkp://p80.pool.sks-keyservers.net:80recvkeys 58118E89F3A912897C070ADBF76221572C52609D

–> Paketleri arayacagi yeri belirtelim

echo “deb https://apt.dockerproject.org/repo ubuntu-xenial main” | sudo tee /etc/apt/sources.list.d/docker.list

–> Index’leyelim

sudo apt-get update

–> Listeleyelim bakalim hangi version docker engine kurabiliyoruz

apt-cache policy docker-engine

–> AUFS destegi icin ilgili paketleri kuralim, muhtemelen linux-image-extra-virtual paketinin kurulmasi gerekecek

sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual

–> Artik kuralim

sudo apt-get install docker-engine

–> Kurulum sonrasi kullanmak adina bridge yonetim paketlerinide kuralim , kolaylik sagalayabilir

sudo apt install bridge-utils

–> Sistem uzerindeki ek yaratilan Docker0 bridge interface’ini gorebilirsiniz

ifconfig | grep docker

docker0   Link encap:Ethernet  HWaddr 02:42:d3:1b:39:5b

–> Ne kuruldu diye bir bakalim

sudo apt-cache policy docker-engine

docker-engine:

Installed: 1.12.3-0~xenial

–> Docker servis olarak calisiyor olmali, calismiyor ise start edin

sudo service docker status

–> Ve ufaki bir test

sudo docker run hello-world


Dockerd, Unix domain socket ve non-root kullanicisinin docker komutunu calistirabilmesi

Docker servisini calistirdiginizda arkada kalici olarak ve root kullanicisi ile calisan dockerd adli bir process goreceksiniz. Ilgili uygulama host uzerinde tum container islemlerini gerceklestirir. Sunucu uzerindeki erisim unix domain socket (IPC socket) uzerinden olur ayni zamanda uzaktan erisimler icinde tcp socket kullanilir.

TCP Socket –> -H tcp://0.0.0.0:2376

IPC Socket –> -H unix:///var/run/docker.sock

Ilgili IPC Socket dosyasinin haklarina baktiginizda , sadece root ve docker gurubu tarafindan read/write edilebilir. Haliyle eger root disinda bir kullaniciniz var ise ve bu kullaniciya root ve/veya docker gurubuna eklerseniz sunucu uzerinde cli> dan o kullanici ile komut calistirabilir olursunuz.

noroot@DockerNode2:~$ ls -al /var/run/docker.sock

srw-rw—- 1 root docker 0 Nov  9 16:20 /var/run/docker.sock

Kullaniciyi docker gurubuna ekleme

noroot@DockerNode2:~$ sudo usermod -aG docker noroot

Yukardaki islemi yaptiktan sonra logout olup tekrar login olun ve ilgili kullanici ile docker ps komutunu calistirin.

Not: Bu makale henuz tamamlanmamistir.

Posted on 14/11/2016, in Docker and tagged , , , . Bookmark the permalink. 1 Comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: