Belajar Docker : Instalasi dan Konfigurasi Docker di Ubuntu 16.04

Belajar  Docker  :  Instalasi   dan  Konfigurasi  Docker di  Ubuntu  16.04

Tutorial Linux  Indonesia --  Docker  sangat handal   untuk   technology   Container   untuk  sekarang  ini,  sudah  banyak    perusahaan  besar  di  dunia  menggunakan  docker  untuk   layanan  Container. 

Pada   Artikel   ini    admin  bagol69  akan membahas   tuntas  Docker.

 Pada  artikel  ini    membahas   instalasi  docker  dan  Konfigurasi   docker  menggunakan   system  operasi  Ubuntu 16.04.

APA  ITU  DOCKEER  ?? 

 Docker  merupakan  sebuah   projects   open  source   yang menyediakan  platform   terbuka   untuk  developer  atau  sysadmin. 

Belajar  Docker  :  Instalasi   dan  Konfigurasi  Docker di  Ubuntu  16.04
Apa  itu Docker?


Untuk   melakukan  mengemas, membangun  dan menjalankan  aplikasi  dalam  wadah  (  container )  yang ringan. 


Awal  mula   munculnya  docker   berawal  dari  Project   internal  di   Dotcloud salah  satu  perusahaan PaaS (  Platfrom As  Services ).

Di ciptakan  oleh   Solomon Hykes  serta  di bantu  oleh   Andrea  Luzzardi   dan  Francois-Xavier Bourliet.

Docker   sangat  mirip  dengan   VM (  Virtual  Machine), tapi  docker  lebih  ringan.

 Karena  Docker  tidak  membawa  semua  system  operasi  seperti  Virtual  Machine.

 Tetapi  docker  hanya   berbagi  system (  System  Shared )  dengan host utamanya.

Perlu   kita  ketaui,  docker  di  lengkapi  dengan  fitur   sandbox  yang  menjamin  pengembang   atau    sysadmin   tidak tergangu. 


Sandbox merupakan  istilah   computer  dengan  mekanisme  pemisahan    aplikasi  atau  program    tanpa  mengangu   host  ( isolasi ).


Sanbox   merupakan   istilah  computer  dengan    mekanisme  pemisahan    aplikasi   atau  program   tanpa  mengangu  host  lainya  ( isolasi ). 

Bagi  pengembang,  sandbox  menjamin  aplikasi  dapat  berjalan  tanpa  nganguan   dari  perubahan  lingkungan  host. 

Sedangkan  untuk  sysadmin,  sandbox  menjadmin host  server    dapat  berjalan tanpa  nganguan  atau  down time.

Dapat  melakukan  update   host  server  tanpa  mengangu  host  lainya.

Komponen  Docker  

Komponen  docker   sangat  sederhana, karena   docker   menggunakan  mekanisme  client  dan server. 

Belajar  Docker  :  Instalasi   dan  Konfigurasi  Docker di  Ubuntu  16.04
Cara  Kerja  Docker 

Secara  sederhananya   docker  client  mengirimkan  request  ke  docker  daemon untuk membangun, mendistribusikan  dan menjalankan  container  docker. 

Kedua    docker   client  dan  daemon dapat  berjalan  pada  system  yang sama. 

Antara  docker client  dan   daemon   berkomunikasi  melalui  socket Restful API.

Docker  sendiri  memiliki  banyak  komponen  untuk   menjalankan   tugas  dan  proses. 

Masing-masing  komponen  docker  saling  terkait  untuk  menjalankan  tugas dan  proses  docker   tersebut. 

Baca  Artikel 

Install dan Konfigurasi NFS Server di Ubuntu 16.04
Install Memcached Ubuntu 16.04
Install dan Konfigurasi MongoDB di Ubuntu 16.04
Cara Install MariaDB di Ubuntu 16.04
Cara Install Mysql di Ubuntu 16.04

Berikut  penjelasan   singkat-singkat  komponen  yang terdapat  pada   docker, sebagai  berikut;

   1.  Docker  Images

Docker  Images  yang  berupa   template  dasar  yang  berisi   system  operasi  (  os  )   atau   aplikasi  yang  telah  siap  digunakan.
  
  2.  Docker  Container

Docker  Container   merupakan  sebuah   image  yang  dapat    di kemas  dan  bersifat  Read-Write.   Container   berjalan  di  atas  base  image.

Setiap   perubahan  container  akan  terbentuk   layer  baru  di  atas  base  image. 

Anda  dapat  melakukan  instalasi  aplikasi  dan  menyimpan  aplikasi   anda. 
  
  3. Docker  Registry

Docker   Registry  merupakan  repository   distribusi      yang  berisi  docker  image  yang  bersifat public  atau   private. 

Registry  Docker   di  sebut  dengan  docker  hub.  Kita   dapat  melakukan    push  image   atau  pull  image   milik  kita  sendiri. 
  
  4.  Docker  File

DockerFile  merupakan   skrip  otomasi  yang  berisi perintah  ( Instruksi ) yang  akan    di eksekusi  secara  berurutan   untuk  membuat  sebuah  image. 

  5. Repository

Docker  juga  memiiki repository    yang mirip  di gunakan    oleh  Github   dan    source  control  system lainya. 
  
  6. Docker  Index

Doker  index  berfungsi untuk  mengatur   user  account,  permission  dan      search  pada   web  interfaces    pulic. 

Instalasi   Docker  Pada  Ubuntu  16.04

Docker   merupakan  project  open  source  yang  telah  memberikan  support  banyak   sistem  operasi. 

Untuk  system  operasi  linux  sudah banyak  support untuk  docker   seperti  Ubuntu, centos, debian,  redhat  dan  Open  Suse.  

Ternyata    windows  dan  Mac  OS  sudah  support  untuk  docker.  

Pada  bagian  ini,   admin bagol69    belajar  bagaimana  cara  install  docker  menggunakan  system  operasi  Ubuntu  16.04.

Packet  instalasi  docker  yang  tersedia   di   repository   resmi    Ubuntu  16.04   mungkin  bukan  versi  terbaru  dan   terbaik. 

Lebih  baik  install  docker  menggunakan   repository   resmi  dari  docker  tersebut.   Bagian  ini  menunjukan kepada  anda   bagaimana  melakukan hal  itu.  

Pertama  kita tambahkan  kunci  GPG untuk  repository  Docker resmi ke  sistem.

root@bagol69:~# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

Kita  tambahkan    repository   resmi  dari  docker   ke  system.


root@bagol69:~# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Setelah  kita  tambahkan repository   dari  docker.  Kita  dapat   melakukan   update   system  menggunakan  command  di  bawah  ini. 


root@bagol69:~# apt-get update

Pastikan  anda  menginstall  docker  bukan  dari    repository   default  Ubuntu  16.04, tapi  install  docker  dari  repository   resmi  docker untuk   mendapatkan  versi   terbaru  dan  terbaik. 


root@bagol69:~#  apt-cache policy docker-ce

Kita  install  paket   docker   menggunakan  command  di  bawah  ini. 

root@bagol69:~#  apt-get install docker-ce

Setelah  install  paket   docker,   kita  dapat   aktifkan   servis    docker  menggunakan   command   di  bawah ini. 

root@bagol69:~#  systemctl start docker
root@bagol69:~#  systemctl enable docker
root@bagol69:~#  systemctl restart docker
root@bagol69:~#  systemctl status docker


Untuk  melaukan  pengetesan docker  yang  sudah  kita  install    sduah  berhasil  atau  belum. 

Menambahkan user  ke  dalam  Group  Docker

Secara  default   kita hanya   dapat    akses  menjalankan   perintah  docker   di  dalam  user  sudo  atau user  root.

Jika  kita  ingin  mengunakan  user    lainya  untuk  menggunakan    perintah  docker. 

Kita  bisa  menambahkan   user  tersebut  ke  dalam  group  docker.
root@bagol69:~#  usermod –aG docker $User

Kita  dapat  menganti  $User dengan    user  yang  kita  inginkan,  seperti  command  di  bawah  ini. 

root@bagol69:~#  usermod –aG docker wwwbagol69com

USer  yang  bernama    wwwbagol69com   sudah  tergabung   dalam   group  docker   dan  dapat  menjalankan  perintah  docker  menggunakan  user  wwwbagol69com. 

Cara  Mengaktifkan  Memory  dan  SWAP

Secara   default  docker tidak  dapat  menggunakan   memory   swap untuk menjalankan  container. 

Untuk mengatasi  hal   tersebut   dengan   sedikit  konfigurasi   group  untuk  mengaktifkan  swap  account.

Kemudian  kita  edit   file  di  bawah  ini untuk mengaktifkan   memory  swap. 

root@bagol69:~# nano   /etc/default/grub

Edit  bagian   GRUB_CMDLINE_LINUX seperti  command  di  bawah  ini. 

GRUB_CMDLINE_LINUX="cgroup_enable=memoryswapaccount=1"

Jika  sudah    konfigurasi  di  file    group,   kita  update  menggunakan  command  di  bawah  ini.

root@bagol69:~#   update-grub

Perintah   Dasar   Docker

Sebelum sudah  kita  pelajari   cara   install  docker  di   system  operasi  Ubuntu  16.04. 

Secara umum,  docker  itu  sangat  mudah, asyik  dan seru   untuk  di  pelajarin.

Sebelum  kita  belajar  lebih  jauh  mengenai    docker,  kita   lebih  baik   pelajari  perintah  dasar  docker   dan  melakukan  pengecekan    system   telah  berjalan  docker  dengan  baik. 

Untuk  mencari   image  pada   repository  docker,  misalnya  saya  ingin  mencari images  dari   Ubuntu.  Kita  dapat  menggunakan  command  di  bawah  ini. 


root@bagol69:~#   docker  search  ubuntu

Setelah  mencari  images yang  kita  inginkan,  kita  dapat   melakukan  download  image   tersebut  dari  repository  docker.  

Silahkan  ikutin  command  di  bawah  ini  untuk  mendownload   images. 

root@bagol69:~#   docker  pull  ubuntu

Untuk  melihat    image   yang  sudah  ada  di  server  kita,   dapat  menggunakan  command  di  bawah  ini.


root@bagol69:~#   docker  images
REPOSITORY                                      TAG                      IMAGE ID            CREATED             SIZE
localhost:5000/bagol321nugroho/dockerfile-hub   latest              d8fdfb033508        24 hours ago        1.16MB
bagol321nugroho/dokterfile-hub                                               latest               d8fdfb033508        24 hours ago        1.16MB
bagol321nugroho/test-image-hub                         latest              294ebfa54cae        25 hours ago        101MB
bagol69-busy                                                         latest              51ad9099b2f3        29 hours ago        1.16MB

Untuk  menjalankan   image  kita  di   server  untuk  menjadi  sebuah  container.  Dapat  menggunakan  command  di  bawah  ini. 


root@bagol69:~#   docker run  -it debian
root@b2113ad9f966:/# exit
exit

“Noted”

Dengan  perintah  di  atas,  secara  otomatis  langsung  masuk  ke  dalam  container   Ubuntu. 
Untuk  keluar  dari   container  Ubuntu,  dapat  menggunakan  perintah  “exit”.

Untuk   melihat    container  yang sudah  berjalan  di   server kita,  dapat  menggunakan   command   di  bawah  ini.


root@bagol69:~#   docker ps  -a
CONTAINER ID        IMAGE                            COMMAND                  CREATED             STATUS                         PORTS               NAMES
53eb53b14e7c        debian                           "bash"                   30 seconds ago      Up 29 seconds                                      happy_payne
b2113ad9f966        debian                           "bash"                   57 seconds ago      Exited (0) 46 seconds ago                          elastic_jang
8d3ac8f7668b        hello-world                      "/hello"                 About an hour ago   Exited (0) About an hour ago                       lucid_jepsen
1052cbb36d79        hello-world                      "/hello"                 22 hours ago        Exited (0) 22 hours ago                            reverent_poincare

Untuk  menghapus     container   kalian  dapat  menggunakan  command  di  bawah  ini.


root@bagol69:~#   docker rm  id  (    ID dari  Container )

Di sini  saya   mencontohkan menghapus  salah  satu   container  yang  sudah  ada   di  server  saya. 


root@bagol69:~#   docker rm 66c704c02143
66c704c02143

Setelah  menghapus    container  di  server  kalian,  silahkan    lihat  lagi  apa   container   sudah  berhasil   di hapus  atau     tidak  menggunakan  command  di  bawah  ini.


root@bagol69:~#   docker ps  -a

Kemudian kita  mencari  container   id  yang  kita  hapus  sebelumnya.  Kalo tidak  ada  container  id  tersebut,  berarti  sudah  berhasil menghapus  container. 

Sebelum    kita  sudah berhasil  menghapus   container   dari  server, sekarang  kita  belajar   menghapus  images   dari   server.  

Dapat  menggunakan  command  di  bawah  ini  untuk  menghapus   images  dari   server  anda. 

root@bagol69:~# docker rmi (  ID  Images ) 

 “Noted “
ID Images  itu  anda   ganti  dengan     ID Images   yang anda  dapatkan   dari   server  anda. 

Misalnya,  saya   menghapus  images   open  suse   dengan  iD  images  35057ab4ef08


root@bagol69:~# docker rmi 35057ab4ef08
Untagged: opensuse:latest
Untagged: opensuse@sha256:569e6ee7a622838b9fa1111c3bfa99a50fdb34b7503f945b7d18ce66bb94a369
Deleted: sha256:35057ab4ef084eb79755b0eb3a724eed2187cf3a22724f6e426f1b0e9cac6d83
Deleted: sha256:5859f81da2ee28c49ba7153881e8dc8aaa475d935a4243e5554f43efb15aabcc

Untuk memastikan    server   anda  sudah  berjalan  docker  atau  belum.

Kita  pastikan    server anda  sudah  terinstall  docker   dengan  baik,  dengan  mengecek  versi  dari  docker  tersebut  menggunakan  command  di  bawah ini. 


root@bagol69:~# docker  version
Client:
 Version:           18.06.0-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        0ffa825
 Built:             Wed Jul 18 19:11:02 2018
 OS/Arch:           linux/amd64
 Experimental:      false
Server:
 Engine:
  Version:          18.06.0-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       0ffa825
  Built:            Wed Jul 18 19:09:05 2018
  OS/Arch:          linux/amd64
  Experimental:     false

Dari  keterangan   di  atas   bahwa  server   saya  sudah  berhasil  install  docker   dan  menggunakan  versi  docker  terbaru  yaitu     docker  versi  18.06-ce.

Untuk  mengetahui    versi  docker  secara  lengkap,  seperti  berapa    banyak  container  dan  images    yang  ada  di  server.  

Dapat  menggunakan  command  di  bawah  ini. 


root@bagol69:~# docker info
Containers: 13
 Running: 1
 Paused: 0
 Stopped: 12
Images: 9
Server Version: 18.06.0-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: d64c661f1d51c48782c9cec8fda7604785f93587
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.4.0-116-generic
Operating System: Ubuntu 16.04.5 LTS
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.153GiB
Name: opentest
ID: N4QQ:4S7C:QPHH:QB7W:642K:QRMN:4Y7H:QABZ:H2H7:T63Z:KEFS:HFGX
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: bagol321nugroho
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false
WARNING: No swap limit support

Untuk  menjalankan    container kita  dapat  menggunakan  command  di  bawah  ini.

 Untuk  keluar  dari  container   kita  dapat  menggunakan perintah  “  exit “  atau  menggunakan   shourcut keyboard.  Ctrl + p  dan ctrl + q.


root@bagol69:~# docker run  -it  bagol69_container_backup
root@38af465cc593:/# exit

jika   anda   keluar  dari  container  menggunakan  perintah   “exit”  secara  otomatis  container  anda  akan   stop,  anda  perlu   mengaktifkan   container   anda, menggunakan perintah  di  bawah  ini. 

root@bagol69:~# docker start 38af465cc593
38af465cc593

Nomor  ini  38af465cc593  adalah  ID  dari   Container.
Sedangkan  untuk  masuk  ke  dalam  container  anda  dapat  mengunakan   perintah  di  bawah  ini. 


root@bagol69:~# docker attach 38af465cc593
root@38af465cc593:/#


Untuk  panduan  docker   sudah  sampai   di  sini  dulu,  nanti   di  lanjutkan   panduan  docker  lagi.  

Sementara  masih   pengenalan   docker  terlebih  dahulu  nanti  akan  di  lanjutkan  artikel  berikutnya  masih   bahas  docker   sampai  tuntas.