Post

Docker on AWS

Melakukan percobaan NGINX di dalam Docker dengan memanfaatkan AWS Sandbox Environment.

Docker on AWS

Pendahuluan

Docker adalah platform yang memungkinkan pengembang untuk membuat, mengirim, dan menjalankan aplikasi dalam bentuk kontainer. Kontainer ini merupakan unit standar perangkat lunak yang mengemas kode beserta semua dependensinya, sehingga aplikasi dapat berjalan dengan konsisten di berbagai lingkungan, baik itu di komputer pengembang, server, maupun cloud.

Docker mempermudah pengelolaan aplikasi dengan memberikan isolasi yang lebih baik, efisiensi sumber daya, serta kemudahan dalam pengujian dan penyebaran. Dengan menggunakan Docker, tim pengembang dapat bekerja lebih cepat dan efisien, sekaligus mengurangi masalah yang sering muncul akibat perbedaan lingkungan.

Setup Instance

Di halaman dashboard AWS, cari EC2 dan buat instance dengan memilih opsi Instances di panel kiri, kemudian klik Launch Instance.

Pada bagian Application and OS Images, pilih Ubuntu.

AMI

Selanjutnya, pada bagian Instance Type, silakan pilih t2.small.

Instances type

Di bagian Create key pair, klik Create key pair.

Jika menggunakan Linux atau OpenSSH, pilih tipe .pem. Jika menggunakan PuTTY, pilih tipe .ppk. Setelah itu, klik Create key pair.

Create key pair

Pada bagian Network settings, silakan pilih Create security group dan centang opsi SSH, HTTP dan HTTPS untuk memberikan izin pada port 22, 80 dan 443. Setelah itu, klik Launch instance.

Network settings

Kita dapat mengakses instance jarak jauh menggunakan key pair yang telah diunduh tadi, atau kita juga bisa langsung terhubung melalui opsi Connect dari instance tersebut.

Konfigurasi Docker

Setup Docker’s repository

Dalam OpenSSH atau PuTTY, silakan masukkan perintah berikut:

1
sudo apt-get update && sudo apt-get install ca-certificates curl && sudo install -m 0755 -d /etc/apt/keyrings && sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc && sudo chmod a+r /etc/apt/keyrings/docker.asc
1
2
3
4
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
1
sudo apt-get update

Instalasi Docker

Masukkan perintah berikut ke terminal untuk memasang versi terakhir dari Docker:

1
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
1
docker --version

Setelah itu, silakan instal image dengan menggunakan perintah berikut:

1
docker pull nginx

Periksa images dengan mengetikkan perintah berikut:

1
docker images

Setelah image selesai dibuat, selanjutnya buatlah kontainer menggunakan image tersebut dengan mengetik:

1
docker container create --name nginx -p 80:80 nginx

Cek kontainer:

1
docker ps -a

Menggunakan NGINX

Status di sini belum aktif. Untuk menjalankannya, silakan ketik:

1
docker container start nginx

Silakan ubah data indeks dengan cara keluar dari direktori file. Pertama, buatlah folder bernama docker.

1
mkdir docker

Kemudian, buat file index.html

1
cd docker && nano index.html

Masukkan kode html berikut:

1
2
3
4
5
<html>
    <body>
        <h1>Hello Friends</h1>
    </body>
</html>

Klik ctrl+x dan ketik y untuk keluar dari nano. Selanjutnya, cek ip public AWS di browser.

Ketikkan perintah berikut untuk menyalin file HTML ke direktori /usr/share/nginx/html pada kontainer Nginx.

1
docker cp index.html nginx:/usr/share/nginx/html

Skenario 2: Membuat kontainer dan mengimpor data web melalui volume.

Hapus container yang telah dibuat sebelumnya. Namun, sebelum itu, pastikan untuk menghentikan container yang masih berjalan dengan perintah:

1
docker container stop nginx 

Setelah itu, kita dapat menghapusnya dengan perintah:

1
docker container rm nginx

Buat volume baru dengan menjalankan perintah berikut:

1
docker container create --name nginxx -p 80:80 -v /home/ubuntu/docker/web/:/usr/share/nginx/html nginx

Perintah di atas akan membuat kontainer baru dengan nama nginxx, memetakan port 80, dan menghubungkan direktori lokal ke direktori di dalam kontainer.

Jalankan kontainer dengan mengetik docker container start nginxx dan periksa apakah kontainer tersebut sudah berjalan dengan mengetik docker ps -a.

Selanjutnya, masuk ke direktori web dan buat file index.html dengan mengetik:

1
cd web && nano index.html

Kemudian, masukkan kode berikut:

1
2
3
4
5
<html>
    <body>
        <h1>Hello Volume</h1>
    </body>
</html>

Klik ctrl+x dan ketik y untuk keluar dari nano. Selanjutnya, cek ip public AWS di browser.

Skenario 3: Dockerfile

1
nano Dockerfile

Masukkan teks:

1
2
3
FROM nginx 

COPY /web/ /usr/share/nginx/html

Klik ctrl+x dan ketik y untuk keluar dari nano.

Salin file Dockerfile dengan menggunakan perintah:

1
cp Dockerfile ../

Selanjutnya, keluar dari folder web dengan mengetikkan perintah:

1
cd ../

Lihat image yang telah dibuat dengan mengetikkan perintah:

1
docker images

Buat image dengan mengetikkan perintah:

1
docker build --tag nginxww .

Setelah itu, coba periksa kembali dengan mengetik:

1
docker images

Hapus kontainer yang ada di Skenario 2 dengan mengetikkan perintah:

1
docker container stop nginxx && docker container rm nginxx && docker ps -a

Buat container menggunakan image yang telah dibuat dengan perintah berikut:

1
docker container create --name nginx -p 80:80 nginxww

Pastikan untuk mengganti nginxww dengan nama image yang sesuai jika diperlukan.

Terakhir, gunakan perintah berikut:

1
docker container start nginx && cat Dockerfile

Pranala Menarik

Referensi

Telecommunication Network Laboratory: Cloud Computing

This post is licensed under CC BY 4.0 by the author.