Mungkin salah satu alasan utama mengapa saya suka buruh pelabuhan adalah karena itu menghilangkan kebutuhan untuk menginstal berbagai layanan di komputer. Ini termasuk server web Apache atau Nginx itu sendiri, database, dan komponen lain dari infrastruktur aplikasi. Seluruh infrastruktur terdaftar dalam file konfigurasi docker-compose.yml dan diluncurkan dengan satu perintah bersama dengan aplikasi Anda. Semua yang dibutuhkan oleh pengembang yang bekerja dengan buruh pelabuhan pada dasarnya adalah buruh pelabuhan itu sendiri dan lingkungan pengembangan favorit dan SEMUANYA!
Untuk kelengkapan narasi lebih lanjut, Anda masih harus memberi tahu secara singkat apa docker dan konsep dasarnya.
Jadi, buruh pelabuhan harus dianggap sebagai semacam sistem virtualisasi dan kontainerisasi.
Salah satu konsep dasar buruh pelabuhan adalah gambar. Gambar dapat dibandingkan dengan file (bahkan mungkin program yang dapat dieksekusi), yang berisi beberapa informasi. Docker dapat meluncurkan gambar. Gambar berjalan disebut wadah. Beberapa kontainer dengan gambar yang sama dapat diluncurkan.
Jadi apa yang terkandung dalam gambar?
Mungkin gambar sistem operasi. Misalnya saja gambar ubuntu. Mungkin ada gambar dengan database, server web dan php dan dengan hampir semua hal. Untuk memulai pengetahuan ini akan cukup bagi kita.
Diasumsikan bahwa pembaca itu sendiri telah menginstal docker dan docker-compose.
Kami mulai mengerahkan lingkungan kami dari yang sederhana ke yang lebih kompleks.
Pelajaran nomor 1. Instalasi nginx
Mari kita coba instal hanya Nginx terlebih dahulu. Buat docker-compose.yml dengan konten berikut:
version: '3.0' services: nginx: image: nginx ports: - 80:80
Selanjutnya, jalankan perintah docker-compose up -d dan yang berikut akan muncul sebagai respons:
Creating network "lesson1_default" with the default driver Creating lesson1_nginx_1 ... done
Kami memasukkan
http: // localhost / di bilah alamat browser dan ucapan "Selamat datang di nginx!" Harus terlihat oleh mata kami. Jika demikian, Anda berada di jalur yang benar.
Apa yang sedang terjadi di sini?
Untuk memahami struktur file penulisan, saya sarankan merujuk pada
dokumentasi resmi , meskipun itu adalah sumber informasi terbaik dalam bahasa Inggris. Dokumentasi menjelaskan semua opsi yang memungkinkan yang dapat digunakan.
Mari kita menganalisis file yang disajikan:
- versi - Pada awalnya, versi file penulisan dideklarasikan. Alih-alih 3.0, Anda bisa menentukan 2.0. Kurang tidak lagi didukung. Opsi dalam file penulisan yang tersedia untuk digunakan tergantung pada versinya.
- layanan - pengumuman layanan
- nginx - nama layanan kami, ditetapkan secara sewenang-wenang atas kebijakannya sendiri. Dalam contoh ini, cocok dengan nama gambar.
- image: nginx - nama gambar yang akan digunakan.
- ports - direktif menyatakan penerusan port. 8080: 80 - entri ini berarti bahwa port terbuka 80 kontainer akan sesuai dengan port 8080 pada mesin host di mana buruh pelabuhan berjalan. Dalam contoh dari file, port 80 dalam wadah terhubung ke port 80 di komputer Anda.
Kami akan memeriksa deklarasi gambar secara lebih rinci, gambar: direktif nginx.
Repositori utama dari semua gambar adalah
Docker Hub. Ada banyak gambar siap pakai yang berbeda di sana (Anda dapat mengumpulkan milik Anda sendiri, tetapi lebih dari itu nanti). Gambar
nginx yang dideklarasikan adalah salah satunya.
Adapun port "maju". Jika Anda menentukan kecocokan 80:80, seperti dalam contoh di atas, maka nginx akan tersedia di localhost: 80 atau hanya localhost. Jika port 80 sudah diambil, maka Anda dapat menentukan 8080: 80. Maka situs tersebut akan tersedia di localhost: 8080. Dan karenanya, jika Anda benar-benar lupa menentukan direktif port ini, port hanya akan tersedia di dalam wadah dan nginx tidak lagi dapat diakses melalui browser.
Wadah sedang berjalan. Dan bagaimana cara benar-benar bekerja dengannya?
Menginstal server Web mengasumsikan bahwa kami ingin menggunakannya untuk menerima dan melihat halaman html situs. Ada sebuah pertanyaan. Bagaimana saya bisa mentransfer file html ke wadah? Volume akan membantu kami dengan ini
volume
Mari kita bawa docker-compose.yml ke formulir berikut:
version: '3.0' services: nginx: image: nginx ports: - 80:80 volumes: - ./html:/usr/share/nginx/html
Arahan volume muncul dari yang baru, yang mengatakan bahwa folder ./html lokal sedang dipasang di wadah di alamat / usr / share / nginx / html.
Saat memasang, folder di alamat yang ditentukan di dalam wadah diganti oleh folder dari komputer lokal.
Untuk membuatnya berfungsi, buat folder html pada level yang sama dengan file docker-compose.yml dan tambahkan file index.html dengan teks bebas ke dalamnya. Misalnya, Halo dari Docker!
Dan kami membuat ulang wadah dengan perintah docker-compose up -d yang sama
Docker menciptakan kembali wadah.
Recreating lesson1_nginx_1 ... done
Periksa hasilnya di browser. Dan kita melihat: Halo dari Docker! Semuanya berhasil.
Penting untuk dicatat bahwa folder yang dipasang tersedia untuk perubahan waktu nyata. Yaitu jika kita mengubah teks dalam file index.html atau menambahkan file baru ke folder, maka semua perubahan ini akan segera tersedia di dalam wadah. Fungsi penting ini memungkinkan Anda untuk melakukan pengembangan melalui buruh pelabuhan. Kami membuat perubahan pada komputer kami untuk memasang file, folder, dan mereka segera ditampilkan dalam wadah buruh pelabuhan.
Bagian 2 - Nginx + PHP + MySql + phpMyAdmin