Tulisan Docker adalah alat baris perintah untuk mendefinisikan dan mengelola kontainer buruh pelabuhan multi-kontainer seolah-olah mereka adalah layanan tunggal. Compose ditulis dengan python dan dapat diinstal dengan perintah Python pip. Dengan compose, kita dapat menjalankan beberapa container docker hanya dengan satu perintah. Ini memungkinkan Anda membuat wadah sebagai layanan, bagus untuk lingkungan pengembangan, pengujian, dan pementasan Anda.
Dalam tutorial ini, saya akan memandu Anda langkah demi langkah untuk menggunakan docker-compose. Kami akan menerapkan 'Wordpress ' dengan Nginx, MySQL, dan PHP-FPM. Setiap layanan memiliki wadahnya sendiri, dan kami akan menggunakan gambar dari registri hub docker. Saya akan menunjukkan cara membuat container dari gambar docker dan mengelola semua container dengan docker-compose.
Prasyarat
- Ubuntu 16.04
- Keistimewaan Root
Langkah 1 - Instal Docker
Kita akan mulai dari awal, dengan menginstall docker dan docker compose secara manual dengan perintah apt.
Sebelum kita mulai, perbarui repositori Ubuntu dan instal pembaruan terbaru:
sudo apt-get update
sudo apt-get upgrade
Secara default, buruh pelabuhan tersedia di repositori Ubuntu, jadi kami dapat terus menginstalnya segera:
sudo apt-get install -y docker.io
Ketika instalasi selesai, mulai buruh pelabuhan dan tambahkan untuk memulai secara otomatis saat boot:
systemctl start docker
systemctl aktifkan docker
Sekarang uji instalasi buruh pelabuhan Anda dengan perintah di bawah ini:
docker menjalankan hello-world
Anda akan melihat hello-world dari buruh pelabuhan.
Langkah 2 - Instal Docker-Compose
Docker-compose adalah skrip yang ditulis dengan python, tersedia di repositori python PyPI dan dapat diinstal dengan python pip. Jadi kita perlu menginstal python dan python pip di sistem kita terlebih dahulu.
Instal python dan python-pip:
sudo apt-get install -y python python-pip
Selanjutnya, instal docker-compose dengan perintah pip:
pip install docker-compose
tunggu sampai proses instalasi selesai. Kemudian periksa instalasi dengan perintah docker-compose:
docker-compose -v
Anda akan mendapatkan versi docker-compose.
Langkah 3 - Siapkan Wordpress
Sekarang, docker dan docker-compose diinstal pada sistem. Pada langkah ini, akan menunjukkan kepada Anda cara membuat dan menyiapkan lingkungan docker-compose untuk proyek WordPress kami.
Kami akan menerapkan aplikasi PHP 'Wordpress' dengan Nginx sebagai server web, dan MariaDB untuk database MySQL sebagai wadah buruh pelabuhan yang dikelola oleh docker-compose. Setiap aplikasi (Wordpress, Nginx, dan MySQL) akan berjalan dalam wadahnya sendiri, Anda dapat melihat daftar di bawah ini:
- Nginx :Kami menggunakan gambar buruh pelabuhan resmi, versi terbaru 'nginx:terbaru'.
- Wordpress :Wordpress menyediakan beberapa gambar buruh pelabuhan di hub buruh pelabuhan, dan kita akan menggunakan WordPress 4.7 dengan PHP-FPM 7.0 di atasnya.
- MySQL :Kami akan menggunakan wadah resmi MariaDB, versi terbaru.
Jadi kita membutuhkan 3 image buruh pelabuhan dari registri hub buruh pelabuhan.
Kami tidak akan menjalankan buruh pelabuhan sebagai root, kami akan menggunakan pengguna Linux biasa. Jadi buat saja pengguna baru dengan perintah di bawah ini (jangan ragu untuk menggunakan nama pengguna yang berbeda di sini, pastikan pengguna tersebut belum ada. Jika Anda memilih nama yang berbeda, pastikan untuk mengubahnya di semua perintah yang mengikuti tutorial ini):
useradd -m -s /bin/bash hakase
passwd hakase
Sekarang tambahkan pengguna ke 'buruh pelabuhan ' grup sehingga pengguna dapat menggunakan perintah buruh pelabuhan, dan memulai ulang layanan buruh pelabuhan:
usermod -a -G docker hakase
systemctl restart docker
Masuk ke pengguna 'hakase' dan buat direktori baru untuk proyek WordPress:
su - hakase
mkdir -p wordpress-compose
cd wordpress-compose/
Selanjutnya, buat file baru bernama 'docker-compose.yml ', dan buat direktori baru untuk proyek tersebut. Cukup ketik perintah di bawah ini:
sentuh docker-compose.yml
mkdir -p nginx/
mkdir -p db-data/
mkdir -p logs/nginx/
mkdir -p wordpress/Daftar File dan Direktori proyek:
- docker-compose.yml :Ini adalah file konfigurasi docker-compose, Anda harus membuatnya saat memulai proyek docker-compose baru.
- nginx/ :Direktori ini digunakan untuk konfigurasi nginx tambahan kami seperti virtual host dll.
- db-data/ :Volume/direktori untuk data mysql. sql from data '/var/lib/mysql' dipasang ke direktori db-data.
- log/ :Direktori untuk log aplikasi, nginx, mariadb dan php-fpm.
- wordpress/: Semua file wordpress akan tersedia di direktori itu.
Di direktori 'nginx', buat file konfigurasi baru untuk host virtual wordpress kami.
Buat file baru wordpress.conf:
vim nginx/wordpress.confTempelkan konfigurasi di bawah ini:
server {
listen 80;
server_name wp-hakase.co;
root /var/www/html;
index index.php;
access_log /var/log/nginx/hakase-access.log;
error_log /var/log/nginx/hakase-error.log;
lokasi / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
sertakan fastcgi_ T_FILE / params;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}Simpan file dan keluar dari vim.
Langkah 4 - Konfigurasikan Docker-Compose
Pada langkah ini, kita akan mulai mengedit file docker-compose.yml. Saat Anda ingin memulai proyek docker-compose, pastikan Anda membuat file docker-compose.yml terlebih dahulu seperti yang kami lakukan di bawah ini.
Edit docker-compose.yml dengan vim:
vim docker-compose.ymlTentukan layanan Anda, pada baris pertama kami akan mendefinisikan Nginx. Kami menggunakan gambar buruh pelabuhan resmi Nginx, versi terbaru, dan mengonfigurasi pemetaan port untuk port 80 pada wadah ke port 80 pada host. Selanjutnya, konfigurasikan volume buruh pelabuhan, volume untuk konfigurasi virtual host Nginx kami, volume untuk file log Nginx dan volume direktori root web '/var/www/html'. Wadah Nginx ditautkan ke wadah WordPress.
Tempelkan konfigurasi di bawah ini:
nginx:
image:nginx:latest
port:
- '80:80'
volumes:
- ./nginx:/etc/nginx/ conf.d
- ./logs/nginx:/var/log/nginx
- ./wordpress:/var/www/html
link:
- wordpress
mulai ulang:selaluSelanjutnya, tentukan server MySQL. Kami menggunakan gambar MariaDB, versi terbaru. Konfigurasikan pemetaan port untuk wadah pada port 3306, dan konfigurasikan kata sandi root MySQL dengan variabel lingkungan 'MYSQL_ROOT_PASSWORD'. Terakhir, konfigurasikan volume penampung untuk direktori data MySQL.
Tempelkan konfigurasi di bawah ini:
mysql:
image:mariadb
port:
- '3306:3306'
volumes:
- ./db-data:/var/lib/ mysql
lingkungan:
- MYSQL_ROOT_PASSWORD=aqwe123
mulai ulang:selaluKemudian kita akan mengkonfigurasi layanan WordPress dengan menggunakan gambar buruh pelabuhan WordPress 4.7 dengan PHP-FPM 7.0 diinstal. Konfigurasikan port untuk PHP-fpm pada port 9000, aktifkan volume buruh pelabuhan untuk direktori web '/var/www/html' ke direktori host 'wordpress', atur database dengan mendefinisikan variabel lingkungan WordPress, dan tautkan layanan WordPress ke mysql.
Tempelkan konfigurasi di bawah ini:
wordpress:
gambar:wordpress:4.7.1-php7.0-fpm
port:
- '9000:9000'
volume:
- . /wordpress:/var/www/html
environment:
- WORDPRESS_DB_NAME=wpdb
- WORDPRESS_TABLE_PREFIX=wp_
- WORDPRESS_DB HOST> _DB_saya__DB_HOST>=saya> link:
- mysql
mulai ulang:selaluSetelah menambahkan tiga bagian ke dalam file docker-compose.yml, simpan file dan keluar dari editor vim.
Konfigurasi docker-compose kami sudah siap.
Langkah 5 - Jalankan Docker-compose
Mulai buat container baru dengan docker compose. Buka direktori penulisan wordpress dan mulai wadah baru berdasarkan file penulisan kami.
cd ~/wordpress-compose/
docker-compose up -dAnda dapat melihat hasil dari perintah tersebut. Tiga kontainer dibuat. Mari kita periksa status container dengan opsi ps:
docker-compose psDi bawah ini adalah hasilnya:
Jika Anda ingin melihat output log dari container, Anda dapat menggunakan perintah di bawah ini:
log penulisan buruh pelabuhan nginx
log pembuatan buruh pelabuhan mysql
log pembuatan buruh pelabuhan wordpressLog kontainer:
Catatan :
Jika Anda melihat di log kontainer WordPress kesalahan tentang koneksi MySQL ditolak, abaikan saja.Langkah 6 - Instal Wordpress
Sebelum kita melakukan langkah ini, mari kita periksa port yang tersedia/port terbuka pada sistem. Pastikan Anda memiliki 3 port yang terbuka, port 80, 3306 dan port 9000.
netstat -plntuHasilnya di bawah ini:
Sekarang buka browser web Anda dan ketik URL server atau alamat IP.
http://serverIP/
Anda dapat melihat halaman instalasi WordPress. Pilih bahasa Anda dan klik 'Lanjutkan '.
Isi detail situs web Anda seperti judul situs, pengguna dan kata sandi admin, alamat email Anda, lalu klik 'Instal Wordpress '.
Anda akan dialihkan ke 'Dasbor Admin Wordpress '.
Dan ini adalah contoh posting WordPress saya hello world.
Wordpress telah diinstal dengan docker-compose.
Langkah 7 - Mengakses Docker Container
Ini adalah langkah tambahan tentang cara mengakses wadah dengan docker-compose. Periksa apakah semua wadah tersedia dan tunjukkan statusnya:
docker-compose psKita sudah memiliki 3 container, sekarang kita bisa mencoba login ke masing-masing container. Masuk ke wadah Nginx pertama dengan perintah docker-compose.
docker-compose exec nginx bashnginx :nama layanan pada file docker-compose docker-compose.yml
bash :jalankan perintah bash shell
Sekarang periksa konfigurasi host virtual WordPress kami.
cat /etc/nginx/conf.d/wordpress.conf
File tersedia dalam wadah.
Selanjutnya, coba login ke mysql container, lalu login ke mysql shell dengan password kita di file compose.
docker-compose exec mysql bash
mysql -u root -p
TYPE MYSQL ROOT PASSWORDLihat daftar database:
tampilkan database;Anda akan melihat database WordPress kami.
Dalam wadah 'wordpress', Anda akan melihat semua file WordPress.
docker-compose exec wordpress bash
ls -lah
Semua kontainer dapat diakses.
Cara menginstal OTRS (Sistem Tiket Masalah OpenSource) di Ubuntu 16.04 Cara Menginstal Elastic Stack di Ubuntu 16.04Ubuntu