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

Buruh pelabuhan

Docker adalah mesin sumber terbuka yang dapat diperluas yang didukung oleh Linux Containers yang mengotomatiskan penerapan aplikasi sebagai wadah portabel, ringan, dan mandiri. Untuk tujuan tutorial ini, kami akan menganggap Anda telah mengikuti langkah-langkah yang diuraikan dalam Menyiapkan dan Mengamankan Instans Komputasi, bahwa sistem Anda mutakhir, dan bahwa Anda telah masuk ke Linode sebagai root melalui SSH.

Instalasi

Untuk tujuan panduan ini, kami akan menunjukkan kepada Anda cara menginstal Docker di Ubuntu 12.04 dan CentOS 6.4. Docker menyediakan repositori untuk masing-masing distribusi ini, yang memudahkan penginstalan.

Ubuntu 12.04 64bit

Di sini kita akan menambahkan repositori yang dikelola Docker untuk Ubuntu dan menginstal perangkat lunak.

  1. Docker tersedia sebagai paket di repositori Ubuntu Docker, tetapi hanya untuk 64bit. Pertama, Anda perlu menambahkan kunci repositori Docker menggunakan apt-key :

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
    
  2. Tambahkan repositori Docker ke sumber apt Anda:

    echo "deb http://get.docker.io/ubuntu docker main" | sudo tee /etc/apt/sources.list.d/docker.list
    
  3. Jalankan yang berikut ini untuk apt-get update dan instal lxc-docker :

    sudo apt-get update
    sudo apt-get install lxc-docker
    
  4. Untuk memverifikasi bahwa instalasi telah berhasil diselesaikan, luncurkan contoh wadah Ubuntu. Perintah ini akan secara otomatis mengambil gambar yang hilang, menjalankan wadah, dan menyediakan sesi bash interaktif:

    sudo docker run -i -t ubuntu /bin/bash
    

    Outputnya akan menyerupai:

    # docker run -i -t ubuntu /bin/bash
    Unable to find image 'ubuntu' (tag: latest) locally
    Pulling repository ubuntu
    8dbd9e392a96: Download complete
    b750fe79269d: Download complete
    27cf78414709: Download complete
    [email protected]:/#
  5. Untuk keluar dari container, ketik exit .

CentOS 6 64bit

Docker tersedia di repositori EPEL sebagai docker-io paket hanya untuk 64bit.

  1. Untuk menambahkan repositori EPEL, instal paket rilis terbaru epel.

  2. Untuk menginstal Docker, jalankan perintah berikut:

    sudo yum -y install docker-io
    
  3. Untuk memulai daemon Docker, aktifkan service :

    sudo service docker start
    
  4. Jika Anda ingin daemon Docker dimulai saat boot, jalankan perintah berikut:

    sudo chkconfig docker on
    
  5. Untuk memverifikasi bahwa penginstalan telah berhasil diselesaikan, luncurkan contoh container Fedora. Perintah ini akan secara otomatis mengambil gambar yang hilang, menjalankan wadah, dan menyediakan sesi bash interaktif:

    sudo docker run -i -t fedora /bin/bash
    
  6. Untuk keluar dari container, ketik exit .

Apa yang Dapat Saya Lakukan dengan Docker?

Docker memungkinkan pengguna untuk mengemas aplikasi dan konfigurasi mereka ke dalam gambar yang ringan untuk diterapkan sebagai wadah portabel.

Halo Dunia

Untuk menjalankan container Docker yang mencetak “hello world”, jalankan perintah berikut:

docker run ubuntu /bin/echo hello world

Seharusnya mengembalikan hello world .

Ini memberitahu Docker untuk melakukan beberapa hal:

  1. Jika gambar (Ubuntu) belum ada secara lokal, unduh dari Indeks Docker.
  2. Buat wadah baru dengan gambar dasar Ubuntu dengan sistem file baca-tulis dan antarmuka jaringan.
  3. Alokasikan alamat IP ke penampung; siapkan NAT untuk meneruskan lalu lintas ke dan dari penampung.
  4. Jalankan perintah /bin/echo hello world , dan cetak hasilnya.
  5. Setelah menyelesaikan proses utama, container akan keluar.

Menulis Dockerfile untuk Nginx

Saat membangun gambar, Docker mengikuti instruksi yang diatur dalam file bernama Dockerfile . Perhatikan bahwa file harus diberi nama Dockerfile dan semua file atau folder yang diperlukan oleh Dockerfile harus berada di bawah direktori yang sama dengan Dockerfile sendiri.

Menjalankan program seperti echo dalam wadah Docker cukup sederhana. Namun, untuk program yang bertindak sebagai server, seperti Nginx, Anda perlu memastikan bahwa program tersebut dikonfigurasi untuk tidak melakukan daemonisasi sendiri.

Ini adalah contoh Dockerfile untuk Nginx:

FROM        ubuntu:12.04
MAINTAINER  Jon Chen "[email protected]"

RUN         echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list
RUN         apt-get update
RUN         apt-get install -y nginx

RUN         echo "\ndaemon off;" >> /etc/nginx/nginx.conf
VOLUME      /etc/nginx/sites-enabled
VOLUME      /var/log/nginx

EXPOSE      80
CMD         ["nginx"]

Sintaks Dockerfile terlihat seperti ini:

# Comment
INSTRUCTION arguments

Docker menjalankan instruksi Dockerfile dari atas ke bawah secara berurutan. Instruksi pertama harus menjadi FROM , yang menentukan gambar dasar tempat Anda ingin membuat gambar baru:

FROM ubuntu:12.04

Ini menetapkan gambar resmi Ubuntu 12.04 sebagai gambar dasar. Anda juga ingin menggunakan instruksi MAINTAINER untuk menentukan pembuat gambar:

MAINTAINER Jon Chen "[email protected]"

Selanjutnya, tombol RUN instruksi akan mengeksekusi perintah pada gambar, dan mengkomit hasilnya. Setiap komit disimpan dan digunakan untuk instruksi berikutnya. Misalnya, RUN . ini baris menggantikan isi /etc/apt/sources.list dalam gambar dengan deb http://archive.ubuntu.com/ubuntu precise main universe :

RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list

Hal penting yang harus diingat untuk program seperti Nginx adalah memastikan bahwa program tidak berjalan sebagai daemon. Perilaku default Nginx sebagai daemon adalah memotong proses pekerja, lalu keluar dari proses master. Karena Docker hanya mengawasi PID untuk proses asli, wadah akan berhenti sebelum waktunya alih-alih berjalan terus-menerus. Untuk menonaktifkan daemonisasi, tambahkan arahan konfigurasi thedaemon off ke /etc/nginx/nginx.conf :

RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf

Untuk mengekspos port di dalam container ke luar container, gunakan instruksi EXPOSE:

EXPOSE 80

Instruksi CMD mendefinisikan perintah default untuk dijalankan saat container dimulai. Dalam contoh kami, kami ingin menjalankan Nginx:

CMD ["nginx"]

Secara default, container Docker tidak memiliki penyimpanan persisten. Untuk berbagi data antar container, gunakan fitur VOLUME:

VOLUME /etc/nginx/sites-enabled
VOLUME /var/log/nginx

Untuk memasang direktori dari host ke wadah, Anda perlu menentukan direktori host, direktori wadah yang sesuai, dan izin direktori di baris perintah saat Anda menjalankan wadah:

-v=[]: Create a bind mount with: [host-dir]:[container-dir]:[rw|ro].
If "host-dir" is missing, then docker creates a new volume.

Untuk membangun gambar ini, jalankan perintah berikut di direktori yang sama dengan file Docker. Anda juga dapat menentukan repositori dan tag untuk gambar Anda dengan -t repo/tag :

docker build -t bsdlp/nginx .

Jalankan perintah berikut untuk menambahkan /etc/nginx/sites-enabled dan /var/log/nginx sebagai volume dari host ke container, jalankan container sebagai daemon, dan ekspos port 80 dari container sebagai port 80 di host:

docker run -d -p 80:80 -v /etc/nginx/sites-enabled:/etc/nginx/sites-enabled -v /var/log/nginx:/var/log/nginx bsdlp/nginx

Informasi Lebih Lanjut

Anda mungkin ingin berkonsultasi dengan sumber daya berikut untuk informasi tambahan tentang topik ini. Meskipun ini disediakan dengan harapan dapat bermanfaat, harap perhatikan bahwa kami tidak dapat menjamin keakuratan atau ketepatan waktu materi yang dihosting secara eksternal.

  • Panduan Memulai Docker
  • Docker di GitHub
  • Indeks Gambar Docker Resmi

Docker
  1. Masalah Docker Di Ubuntu 20.04?

  2. Menginstal Docker (Ubuntu)

  3. Bagaimana Cara Menginstal Docker di Ubuntu 18.04?

  1. Cara Menginstal Docker Di Ubuntu 18.04

  2. Cara Menginstal Docker di Ubuntu 16.04

  3. Cara Menginstal Docker di Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  1. Cara Menginstal Kubernetes di Ubuntu 18.04

  2. Cara Menginstal Docker Compose di Ubuntu 18.04

  3. Cara Menginstal Rancher di Ubuntu