GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Apa itu Docker, Perbedaan Docker dan VM, Instalasi Docker dan Penggunaannya

Sebelumnya kita telah melihat instalasi hypervisor seperti Xen dan cloud middleware seperti openstack. Baru-baru ini teknologi baru yang disebut docker container telah menjadi tren terpanas dalam pengembangan aplikasi. Pada artikel ini kita akan melihat apa itu docker, perbedaannya dengan mesin virtual, instalasi docker dan penggunaannya.

Apa itu Docker ?

Docker adalah wadah yang membungkus bagian dari perangkat lunak dalam sistem file lengkap yang berisi semua yang dibutuhkan untuk menjalankan:kode, run-time, alat sistem, perpustakaan sistem - apa pun yang dapat Anda instal di server. Kontainer melakukan virtualisasi pada tingkat sistem operasi sehingga lebih efisien daripada hypervisor dalam penggunaan sumber daya sistem. Ada banyak teknologi container Linux seperti LXC, Docker dll.,

Apa perbedaan antara Docker dan Mesin Virtual?

Dengan pendekatan arsitektur yang berbeda, wadah jauh lebih portabel dan efisien, meskipun mereka memiliki isolasi sumber daya yang serupa. Gambar di bawah menunjukkan perbedaan arsitektur antara wadah dan Mesin Virtual.

Mesin Virtual Kontainer 1.Memerlukan Hypervisor dan OS lengkap di dalamnya 1. Berbicara dengan kernel host 2. Jejak Lebih Besar (RAM dan Ruang penyimpanan) 2. Jejak lebih kecil (Tanpa RAM dan penyimpanan diferensial) 3. VM menggunakan ruang penyimpanan untuk setiap instance ~1.2GB 3. Menggunakan ruang yang sangat sedikit ~2,5MB 4. Lebih berat 4. Ringan 5. Waktu startup Mesin Virtual dalam hitungan menit 5. Waktu mulai dalam hitungan detik 6. Penerapannya sulit. 6. Penerapan Mudah dengan persyaratan minimal untuk menjalankan aplikasi 7. Lebih lambat 7. Lebih cepat 8. Masalah keamanan menjalankan OS 8. Masalah keamanan terbatas pada Aplikasi

Bagaimana Cara Memasang Wadah Docker di CentOS 7?

Rilis resmi terbaru dari Docker adalah v1.10. Instruksi di bawah ini adalah untuk menginstal Docker Container di server CentOS 7. Masuk ke server CentOS 7 sebagai root dan ikuti langkah-langkah di bawah ini.

Langkah 1: Sebagai praktik terbaik, mari perbarui sistem menggunakan yum seperti yang ditunjukkan di bawah ini:

# yum -y update

Langkah 2: Secara default, Docker disertakan dalam repositori CentOS-Extra. Jika Anda ingin menggunakan versi docker yang lebih baru, jalankan perintah di bawah ini untuk menambahkan ke repo.

# tee /etc/yum.repos.d/docker.repo <<-'EOF'
 > [dockerrepo]
 > name=Docker Repository
 > baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
 > enabled=1
 > gpgcheck=1
 > gpgkey=https://yum.dockerproject.org/gpg
 > EOF
 [dockerrepo]
 name=Docker Repository
 baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
 enabled=1
 gpgcheck=1
 gpgkey=https://yum.dockerproject.org/gpg

Langkah 3: Instal paket docker dan docker-registry. Registri Docker adalah aplikasi sisi server tanpa status dan sangat skalabel yang menyimpan dan memungkinkan Anda mendistribusikan Gambar Docker.

# yum -y install docker docker-registry

Langkah 3: Setelah instalasi buruh pelabuhan berhasil, mulai layanan buruh pelabuhan.

systemctl start docker.service

Langkah 4: Pastikan layanan buruh pelabuhan dimulai saat boot dengan perintah di bawah ini:

#  systemctl enable docker.service

Langkah 5: Verifikasi layanan buruh pelabuhan

systemctl status docker.service
docker.service - Docker Application Container Engine
 Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
 Active: active (running) since Tue 2016-03-22 16:29:00 IST; 20h ago
 Docs: http://docs.docker.com
 Main PID: 30108 (docker)
 CGroup: /system.slice/docker.service
 ââ30108 /usr/bin/docker daemon --selinux-enabled
Mar 22 17:10:12 vm1 docker[30108]: time="2016-03-22T17:10:12.541577770+05:3...1"
 Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429417681+05:3...0"
 Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429730128+05:3...s"
 Mar 22 17:11:05 vm1 docker[30108]: time="2016-03-22T17:11:05.429781346+05:3...04
 Mar 22 17:11:13 vm1 docker[30108]: time="2016-03-22T17:11:13.020019713+05:3...0"
 Mar 22 17:11:23 vm1 docker[30108]: time="2016-03-22T17:11:23.021293894+05:3...e"
 Mar 22 17:11:28 vm1 docker[30108]: time="2016-03-22T17:11:28.600657892+05:3...n"
 Mar 22 17:11:35 vm1 docker[30108]: time="2016-03-22T17:11:35.938950613+05:3...0"
 Mar 22 17:11:45 vm1 docker[30108]: time="2016-03-22T17:11:45.939810804+05:3...e"
 Mar 22 17:11:57 vm1 docker[30108]: time="2016-03-22T17:11:57.720737864+05:3...n"
 Hint: Some lines were ellipsized, use -l to show in full.

Bagaimana cara menggunakan Docker?

Langkah 1: Unduh wadah Docker. Jalankan perintah di bawah ini untuk mendapatkan gambar CentOS resmi terbaru yang stabil:

# docker pull centos

Perintah di atas menarik rilis centos stabil terbaru. Untuk menarik gambar CentOS versi lain, misalnya CentOS 6:

# docker pull centos:centos6

Langkah 2: Untuk memverifikasi bahwa gambar telah diunduh secara lokal:

# docker images centos
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
docker.io/centos latest bb3d629a7cbc 2 weeks ago 196.6 MB

Langkah 3: Untuk membuat daftar semua gambar yang diunduh yang tersedia:

# docker images

Cara menjalankan Docker Container

Langkah 1: Jalankan wadah Centos dasar dengan bash shell. Di sini, -i opsi melampirkan stdin dan stdout , -t mengalokasikan tty .

# docker run -i -t centos /bin/bash

Itu dia! Sekarang Anda masuk ke shell bash di dalam container docker centos.

Perintah untuk bekerja dengan container Docker

1. Untuk memutuskan atau melepaskan wadah tanpa mematikan wadah:

Ctrl-p + Ctrl-q

2. Ada banyak container yang sudah tersedia di komunitas. Untuk membuat daftar container dari komunitas:

# docker search centos
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/centos The official build of CentOS. 2042 [OK]
docker.io docker.io/jdeathe/centos-ssh CentOS-6 6.7 x86_64 / CentOS-7 7.2.1511 x8... 18 [OK]
docker.io docker.io/jdeathe/centos-ssh-apache-php CentOS-6 6.7 x86_64 / Apache / PHP / PHP M... 14 [OK]
...
...
# docker search ubuntu
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/ubuntu Ubuntu is a Debian-based Linux operating s... 3464 [OK]
docker.io docker.io/ubuntu-upstart Upstart is an event-based replacement for ... 60 [OK]
docker.io docker.io/torusware/speedus-ubuntu Always updated official Ubuntu docker imag... 25 [OK]
docker.io docker.io/rastasheep/ubuntu-sshd Dockerized SSH service, built on top of of... 23 [OK]
...
...

3. Buat daftar semua wadah

# docker ps -a

4. Cantumkan hanya container yang sedang berjalan

# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4293c8265d00 centos "/bin/bash" 22 hours ago Up 9 seconds agitated_poincare

5. Hentikan Container
Dapatkan ID container dari daftar di atas dan gunakan untuk menghentikan container masing-masing:

# docker stop 4293c8265d00

6:Mulai ulang layanan buruh pelabuhan

# systemctl restart docker.service

Docker
  1. Apa Perbedaan Antara Kontainer LXC, LXD, dan Docker?

  2. perbedaan antara podman dan buruh pelabuhan.

  3. Perbedaan Antara CMD dan ENTRYPOINT di Gambar Docker

  1. Apa Perbedaan Antara COPY dan ADD di Dockerfiles?

  2. Apa perbedaan antara ls dan l?

  3. Apa perbedaan antara `su -` dan` su --login`?

  1. Apa perbedaan antara InnoDB dan MyISAM?

  2. Apa perbedaan antara strtok_r dan strtok_s di C?

  3. Apa perbedaan antara arm64 dan armhf?