Cara Migrasi Container Antar Server Menggunakan Docker Hub
0 people liked this article
A. Pendahuluan.
Docker merupakan platform populer yang memungkinkan pengembang untuk membangun, menjalankan, dan mendistribusikan aplikasi di dalam container. Dengan menggunakan Docker, pengelolaan aplikasi menjadi lebih ringan, fleksibel, dan konsisten di berbagai lingkungan sistem operasi.
Pada artikel kali ini akan membahas migrasi project yang terinstall container docker ke server lain dengan menggunakan Docker Hub. Docker Hub adalah layanan registri berbasis cloud yang memungkinkan pengembang untuk menyimpan, berbagi, dan mendistribusikan image container.
B. Persiapan.
Dalam artikel kali ini menggunakan project Wordpress yang di install pada Docker, pastikan telah menginstall docker pada kedua server sebelum melanjutkan ke selanjutnya.
Untuk arsitektur kurang lebih seperti berikut:

Note: Panduan ini menggunakan
anonymous volumeyang otomatis dibuat oleh instruksiVOLUMEdi Dockerfile image resmi. Karenadocker committidak menangkap data volume (baik anonymous, named, maupun bind mount), maka diperlukan langkah backup ke direktori/backup/yang berada di writable layer container.
1. Persiapan Project.
Langkah awal membuat project website wordpress sederhana pada docker dengan mengikuti langkah berikut:
a. Install Wordpress dan Database pada Docker.
Pada langkah ini menginstall Wordpress versi terbaru dan menggunakan database MariaDB versi terbaru dengan menggunakan official docker image.
Buat docker network untuk project.
sudo docker network create wp-network
Setelah itu install Database dan Wordpress.
#Install MariaDB
sudo docker run -d \
--name mariadb \
--network wp-network \
-e MYSQL_ROOT_PASSWORD=r00tPassw0rd \
-e MYSQL_DATABASE=wordpress \
-e MYSQL_USER=wpuser \
-e MYSQL_PASSWORD=wpPassw0rd \
mariadb:latest
#Install Wordpress
sudo docker run -d \
--name wordpress \
--network wp-network \
-e WORDPRESS_DB_HOST=mariadb \
-e WORDPRESS_DB_USER=wpuser \
-e WORDPRESS_DB_PASSWORD=wpPassw0rd \
-e WORDPRESS_DB_NAME=wordpress \
-p 8080:80 \
wordpress:latest
Note: Pada konfigurasi diatas, sesuaikan untuk username dan password yang digunakan pada masing-masing service.
b. Verifikasi.
Setelah itu cek list container yang berjalan.
sudo docker ps -a

Akses wordpress melalui website, karena menggunakan port 8080 maka untuk akses dapat seperti berikut ip_server:8080

Selamat set up awal project telah selesai dan dapat melanjutkan ke tahap selanjutnya.
2. Login Docker Hub di Server.
Dikarenakan langkah migrasi memanfaatkan Docker Hub, maka pastikan telah memiliki akun Docker Hub. Jika belum, dapat registrasi terlebih dahulu pada laman https://hub.docker.com/
Setelah memilik akun dan dapat login di laman Docker Hub, selanjutnya dapat login ke masing-masing server agar dapat terhubung ke Docker Hub.
sudo docker login
Nantinya teradpat code yang dapat di inputkan pada url verifikasi, akses url yang tersedia saat menjalankan command diatas dan inputkan kode. Setelah berhasil, akan terdapat informasi bahwa login telah berhasil.


C. Backup Data di Server Lama.
Setelah melakukan setup awal, mari melanjutkan ke tahap selanjutnya yaitu melakukan backup data di server lama.
1. Melakukan Backup Container.
Lakukan bacup data kedua service pada container dengan menjalankan comamnd dibawah.
a. Backup Database.
#Membuat Folder Backup di Container
sudo docker exec mariadb mkdir -p /backup
#Dump Backup Database
sudo docker exec mariadb sh -c \
'mariadb-dump -u root -passworddb wordpress > /backup/wordpress.sql'
#Verifikasi backup database
sudo docker exec mariadb ls -la /backup/html/

b. Backup Wordpress.
#Membuat Folder Backup di Container
sudo docker exec wordpress mkdir -p /backup
#Backup Data Wordpress
sudo docker exec wordpress sh -c \
'cp -a /var/www/html/. /backup/html/'
#Verifikasi Backup Wordpress
sudo docker exec wordpress ls -la /backup/html/

2. Commit Container & Push ke Docker Hub.
Setelah melakukan backup data, dapat melakukan commit ke docker image dan push image backup ke Docker Hub.
Sebelum melakukan commit dan push, dapat melakukan stop container database dan wordpress terlebih dahulu untuk memastikan konsistensi data.
sudo docker stop wordpress mariadb
a. Commit Container.
#Commit Database
sudo docker commit mariadb userdockerhub/wp-db-migration:v1
#Commit Wordpress
sudo docker commit wordpress userdockerhub/wp-app-migration:v1
Lalukan verifikasi list image hasil commint.
sudo docker images | grep migration

b. Push Image ke Docker Hub.
Lakukan push image ke Docker Hub.
#push database
sudo docker push userdockerhub/wp-db-migration:v1
#push wordpress
sudo docker push userdockerhub/wp-app-migration:v1

3. Verifikasi List Image di Docker Hub.
Lakukan verifikasi list image pada repository di portal Docker Hub.

Terlihat pada list image telah berhasil terupload, selanjutnya dapat melakukan restore pada server baru.
D. Restore Data di Server Baru.
Setelah melakukan backup data di server lama dan melakukan upload image ke Docker Hub, selanjutnya melakukan pull dan restore data di server baru dengan mengikuti langkah berikut.
1. Pull Image & Deploy.
Lakukan pulll image yang telah di upload pada Docker Hub di server baru.
#pull image database
sudo docker pull userdockerhub/wp-db-migration:v1

#pull image wordpress
sudo docker pull userdockerhub/wp-app-migration:v1

#verifikasi image
sudo docker images | grep migration

Terlihat pada capture image telah berhasil terdownload di server baru, selanjutkan melakukan restore data.
2. Restore Data.
Sebelum menjalanka docker dari image yang telah di download, dapat membuat network untuk container terlebih dahulu.
sudo docker network create wp-network
Jalankan container Database dan Wordpress.
a. Menjalankan dan Restore data container Database.
#container-db
sudo docker run -d \
--name mariadb \
--network wp-network \
userdockerhub/wp-db-migration:v1
#restoredb
docker exec mariadb sh -c \
'mariadb -u root -passworddb wordpress < /backup/wordpress.sql'
b. Menjalankan dan Restore data container Wordpress.
#containerwp
docker run -d \
--name wordpress \
--network wp-network \
-p 8080:80 \
userdockerhub/wp-app-migration:v1
#restore-wp
docker exec wordpress sh -c \
'cp -a /backup/html/. /var/www/html/'
Lakukan penyenyuaian permission dan site url Wordpress.
#Change ownership
docker exec wordpress sh -c \
'chown -R www-data:www-data /var/www/html'
#Penyesuaian Site Url
docker exec mariadb sh -c \
"mariadb -u root -pr00tP@ssw0rd -e \
\"UPDATE wordpress.wp_options SET option_value='http://domain:8080' WHERE option_name IN ('siteurl','home');\""
Note: pada option_value dapat diganti dengan nama domain atau IP server baru.
3. Verifikasi
Selanjutnya melakukann verifikasi status container dan akses Worpress.
Cek list continer berjalan.
sudo container ps –a

Akses Wordpress pada browser.


Terlihat data telah berhasil termigrasi dengan sempurna.
E. Penutup
Dengan mengikuti langkah-langkah di atas, telah dapat melakukan migrasi data aplikasi yang terinstall pada container docker dengan mudah. Untuk informasi lebih lanjut, Anda dapat merujuk ke dokumentasi resmi Docker dan sumber-sumber lainnya.
Semoga panduan ini dapat membantu Anda. Temukan bantuan lainnya melalui Knowledge Base Biznet Gio. Jika Anda masih memiliki kendala silahkan hubungi support@biznetgio.com atau (021) 5714567.
Popular Articles
-
Cara Install & Konfigurasi Monitoring Cacti Serta Mengetahui Fungsi Fitur Pada Cacti
14 people say this guide was helpful
-
Cara Mengaktifkan Telnet pada Windows 7, 8 dan 10
5 people say this guide was helpful
-
Install dan Konfigurasi Samba Server pada Ubuntu
4 people say this guide was helpful
-
Jenis-Jenis Software Virtualisasi untuk Membuat Virtual Machine
7 people say this guide was helpful