Di lingkungan Dockerized, Anda menggunakan banyak gambar dan bekerja dengan banyak wadah. Saat Anda menjalankan penampung dari gambar, itu terus menjalankan versi itu karena gambar Docker tidak diperbarui secara otomatis. Anda mungkin perlu memperbaruinya secara manual. Selalu disarankan untuk menjalankan container dari image Docker terbaru.
Dalam panduan ini, kami akan menunjukkan kepada Anda contoh langsung tentang cara memperbarui container yang sedang berjalan tanpa downtime.
Prasyarat
- Server Ubuntu 20.04 baru di Atlantic.Net Cloud Platform
- Kata sandi root yang dikonfigurasi di server Anda
Langkah 1 – Buat Server Cloud Atlantic.Net
Pertama, masuk ke Server Cloud Atlantic.Net Anda. Buat server baru, pilih Ubuntu 20.04 sebagai sistem operasi dengan setidaknya 2GB RAM. Hubungkan ke Server Cloud Anda melalui SSH dan masuk menggunakan kredensial yang disorot di bagian atas halaman.
Setelah Anda masuk ke server Ubuntu 20.04 Anda, jalankan perintah berikut untuk memperbarui sistem dasar Anda dengan paket terbaru yang tersedia.
apt-get update -y
Langkah 2 – Instal Docker CE dan Docker Compose
Pertama, instal semua dependensi yang diperlukan dengan perintah berikut:
apt-get install git apt-transport-https ca-certificates curl software-properties-common -y
Selanjutnya, tambahkan kunci dan repositori Docker GPG dengan perintah berikut:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
Setelah repositori ditambahkan, instal komposisi Docker dan Docker dengan perintah berikut:
apt-get install docker-ce docker-compose -y
Setelah kedua paket diinstal, Anda dapat melanjutkan ke langkah berikutnya.
Langkah 3 – Buat File Penulisan Docker
Untuk tujuan tutorial ini, kita akan membuat jaringan buruh pelabuhan, volume, dan file docker-compose.yml untuk menyebarkan wadah Ghost.
Pertama, buat jaringan bernama net dan volume bernama ghost menggunakan perintah berikut:
docker network create net docker volume create ghost
Selanjutnya, buat direktori untuk proyek Ghost dengan perintah berikut:
mkdir Ghost
Selanjutnya, ubah direktori menjadi Ghost dan buat file docker-compose.yml:
cd Ghost nano docker-compose.yml
Tambahkan baris berikut:
version: '3.5' services: ghost: image: ghost:3.36 volumes: - ghost:/var/lib/ghost/content environment: - VIRTUAL_HOST=ghost.example.com - url=http://ghost.example.com - NODE_ENV=production restart: always networks: - net volumes: ghost: external: true networks: net: external: true
Simpan dan tutup file setelah Anda selesai.
File di atas akan mengunduh gambar Ghost versi 3.36 dan membuat wadah Ghost untuk domain ghost.example.com.
Langkah 4 – Buat Wadah Hantu
Sekarang, ubah direktori ke Ghost dan luncurkan wadah Ghost menggunakan perintah berikut:
docker-compose up -d
Anda akan mendapatkan output berikut:
Pulling ghost (ghost:3.36)... 3.36: Pulling from library/ghost bb79b6b2107f: Pull complete 99ce436c3449: Pull complete f7bdc31da5f5: Pull complete 7a1300b9ff59: Pull complete a495c68fa838: Pull complete 6e362a39ec35: Pull complete b68b4f3c36f7: Pull complete 41f8b02d4a71: Pull complete 3ecc736ea4e5: Pull complete Digest: sha256:595c759980cd22e99037811397012908d89efb799776db222a4be6d4d892917c Status: Downloaded newer image for ghost:3.36 Creating ghost_ghost_1 ... done
Anda dapat memeriksa gambar Ghost dengan perintah berikut:
docker images
Keluaran:
REPOSITORY TAG IMAGE ID CREATED SIZE ghost 3.36 455ce1645479 4 months ago 440MB
Anda juga dapat memeriksa wadah Ghost dengan perintah berikut:
docker ps
Keluaran:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d4b51b1aafc8 ghost:3.36 "docker-entrypoint.s…" 23 seconds ago Up 20 seconds 2368/tcp ghost_ghost_1
Langkah 5 – Perbarui File Penulisan Docker
Di bagian ini, kami akan memperbarui file penulisan Docker dan mengubah versi Ghost dari 3.36 menjadi 3.37.1:
nano docker-compose.yml
Lakukan perubahan berikut:
version: '3.5' services: ghost: image: ghost:3.37.1 volumes: - ghost:/var/lib/ghost/content environment: - VIRTUAL_HOST=ghost.example.com - url=http://ghost.example.com - NODE_ENV=production restart: always networks: - net volumes: ghost: external: true networks: net: external: true
Simpan dan tutup file setelah Anda selesai.
Langkah 6 – Luncurkan Wadah Hantu Baru
Sekarang, kita akan menggunakan metode penskalaan untuk membuat wadah Ghost baru tanpa memengaruhi wadah Ghost yang lebih lama. Anda dapat melakukannya dengan perintah berikut:
cd Ghost docker-compose up -d --scale ghost=2 --no-recreate
Anda akan mendapatkan output berikut:
Pulling ghost (ghost:3.37.1)... 3.37.1: Pulling from library/ghost bb79b6b2107f: Already exists 99ce436c3449: Already exists 7f4b5e228565: Pull complete de71eab7febf: Pull complete 29961d2eb573: Pull complete 923f84e249ab: Pull complete dfad6f73fc3d: Pull complete b16cf83b3022: Pull complete 387b2254843c: Pull complete Digest: sha256:fad0c2631cbba3d6c61da6fa5ef39da201780f2ae64ce51f3d5ebb412ca2564b Status: Downloaded newer image for ghost:3.37.1 Starting ghost_ghost_1 ... done Creating ghost_ghost_2 ... done
Anda dapat memeriksa gambar Ghost baru dengan perintah berikut:
docker images
Keluaran:
REPOSITORY TAG IMAGE ID CREATED SIZE ghost 3.37.1 c64d108acdfe 3 months ago 439MB ghost 3.36 455ce1645479 4 months ago 440MB
Anda juga dapat memeriksa wadah Ghost baru dengan perintah berikut:
docker ps
Keluaran:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c21550f39440 ghost:3.37.1 "docker-entrypoint.s…" 33 seconds ago Up 31 seconds 2368/tcp ghost_ghost_2 d4b51b1aafc8 ghost:3.36 "docker-entrypoint.s…" 4 minutes ago Up 4 minutes 2368/tcp ghost_ghost_1
Langkah 7 – Menskalakan Wadah Hantu Baru
Pada titik ini, kedua wadah Ghost berjalan menggunakan konfigurasi yang sama. Sekarang, kita akan menghentikan dan menghapus wadah Ghost yang lama.
docker container stop ghost_ghost_1 docker container rm ghost_ghost_1
Sekarang, jalankan perintah berikut untuk memperkecil konfigurasi ke pengaturan aslinya:
cd Ghost docker-compose up -d --scale ghost=1 --no-recreate
Anda juga dapat memeriksa log penampung Ghost yang baru untuk informasi lebih lanjut.
docker logs ghost_ghost_2
Keluaran:
[2021-03-05 04:50:13] INFO Blog is in maintenance mode. [2021-03-05 04:50:13] INFO Ghost is running in production... [2021-03-05 04:50:13] INFO Your site is now available on http://ghost.example.com/ [2021-03-05 04:50:13] INFO Ctrl+C to shut down [2021-03-05 04:50:13] INFO Ghost boot 3.581s [2021-03-05 04:50:13] INFO Creating database backup [2021-03-05 04:50:13] INFO Database backup written to: /var/lib/ghost/content/data/ghost.ghost.2021-03-05-04-50-13.json [2021-03-05 04:50:13] INFO Updating portal button setting to false [2021-03-05 04:50:13] INFO Blog is out of maintenance mode.
Wadah Hantu Anda sekarang diperbarui dengan gambar Hantu baru.
Kesimpulan
Dalam panduan di atas, Anda mempelajari cara memperbarui wadah Docker tanpa waktu henti. Mulailah dengan memperbarui wadah Docker Anda di hosting VPS dari Atlantic.Net!