My Stories

#1. Deploy Web Sederhana Menggunakan Docker dengan opsi -v volume

Hari ini aku mengulang kembali materi tentang docker. Aku tulis supaya aku bisa inget. Sesederhana itu motivasinya. Untuk kali ini aku akan deploy web berisi profil, portfolioku, berbasis image httpd di Dockerhub. Skenarionya adalah:

1. Syaratnya, punya akun di AWS, kemudian deploy EC2 berbasis ubuntu. Lakukan remote melalui ssh.

2. EC2 diberi nama Giri_DevOps.

3. Didalam EC2 install Docker, Docker compose,Git. Lihat gambar diatas. Silakan cari cara install Docker dan Docker Compose di github. Selain itu kita juga harus punya akun di github.

4. Langkah selanjutnya adalah melakukan pull httpd dari dockerhub: >>> docker pull httpd . Jika sudah selesai pull maka akan terlihat images ada di lokal kita. >>> docker image tag httpd:latest giri021-httpd (untuk melakukan tagging image dilokal)

5. Langkah berikutnya adalah git clone repository di github:

Repository ini isinya adalah web sederhana tanpa database. >> git clone https://github.com/giri021/portfolioku.git

Maka akan ada folder baru dengan nama portfolioku. Silakan cd ke portfolioku.

6. Sekarang kita inspect image httpd dan kita peroleh working direktori nya. ubuntu@ip-10–21–4–xx:~$ docker image inspect giri021-httpd Akan kita temukan “WorkingDir”: “/usr/local/apache2”, ini nanti akan kita mount dengan isi dari folder /home/ubuntu/portfolioku.

Isi dari /home/ubuntu/portfolioku akan identik dengan /usr/local/apache2/htdocs

File index.html ada di /usr/local/apache2/htdocs <<<<

7. Langkah selanjutnya adalah menjalankan image giri021-httpd didalam container.

ubuntu@ip-10–21–4–xx:~/portfolioku$ docker run -it -d — name giri-testing -v $PWD:/usr/local/apache2/htdocs -p 0:80 giri021-httpd

*Catatan: -p 0:80 dapat dipahami seperti ini, -p (publish) adalah untuk menentukan port berapa yang akan digunakan/dibuka. Dengan menggunakan angka 0 adalah maka port host yang digunakan akan random. Semua traffic ke random host akan diarahkan ke port 80 di container giri021-httpd.

8. Untuk memastikan bahwa isi dari /usr/local/apache2/htdocs == /home/ubuntu/portfolioku . Mari kita cek:

9. Untuk melihat hasil dari deploy web dengan basis image tadi yang kita jalankan didalam container. http://54.70.17.154:32771/

10. Akan semakin ciamik jika kita menggunakan layanan AWS yaitu route53 untuk menggunakan domain yang kita punya. Aplikasi berbasis web ini hanya bersifat sementara. Karena habis ini aku delete container yang berjalan. Uji testing saja.

#2. Cara Custom Images di Docker

Hai semua..apa kabar? Hari ini aku nulis lagi. Ini masih ada kaitannya dengan artikel sebelumnya. Silakan dicek disini: https://medium.com/@ag.giri.hartono/deploy-web-sederhana-menggunakan-docker-dengan-opsi-v-volume-e8766ee91d03

Kalau versi sebelumnya kita menggunakan opsi volume untuk melakukan perubahan konten dari isi web berbasis httpd. Sekaligus redundan konten web. Maka kali ini kita akan melakukan custom di image nya.

Jadi image httpd yang ini akan berisi juga konten web yang ada di github: https://github.com/giri021/portfolioku.git

1. Langkah pertama adalah memastikan ada Dockerfile di direktori portfolioku

2. Kita bekerja dalam direktori portfolioku. Disitu ada source code web apps dan Dockerfile

3. Isi dari Dockerfile simple saja sih, ada FROM yang isinya image official dari httpd:2.4 | versi nya pakai 2.4 . Kemudian COPY isi dari folder portfolioku ke /usr/local/apache2/htdocs/

4. Proses build image sukses dengan nama image baru httpd-custom yang isinya . || Apa itu titik, titik disini adalah isi file dalam working direktori

5. Langkah selanjutnya adalah menjalankan container berbasis image custom httpd-custom tadi

6. Untuk menjalankan image didalam container, kita bisa dengan perintah:

ubuntu@ip-10–21–4–52:~/portfolioku$ docker run -it -d — name http-custom -p 0:80 httpd-custom

Dimana tag nama adalah http-custom dengan images httpd-custom dipublish lewat port 80 dimana semua traffic menuju host 0 (random port) akan diarahkan ke port 80 container httpd

7. Perhatikan pula port host yang diperoleh yaitu http://54.70.17.154:32773/ >> 32773 cukup random bukan?

8. Hasil dari deploy web berbasis image custom dapat anda lihat disini:

#3. Simple Step for Tag and Push Images

I tried few steps and was able to get around to push it finally. Hope this helps someone. Here are the steps worked for me :

1) Login to the docker. Please fill password with your password in dockerhub:

docker login -u giri021

2) Tag your image build before push

your image name here is : yourlocalimage and by default it has tag : latest and my username is : giri021 as registered with docker cloud, and I created a public repository named : dockerhub

so my personal repository becomes now : giri021/dockerhub and I want to push my image with tag : myfirstimagepush

I tagged as below :

docker tag yourlocalimage:latest giri021/dockerhub:myfirstimagepush

3) Pushed the image to yourpersonal docker repository as below

docker push giri021/dockerhub:myfirstimagepush

Just wait for few second & it successfully pushed to your personal docker repo.

Image placeholder

Agustinus Giri Hartono

This article is publish on Medium by Agustinus Giri Hartono.

Honest, Hard Worker, Smart, and Deep Thinking. Good analytical thinking and innovative. Highly motivated and responsible. Extra Ordinary. God's gift. #remoteworker. in Progress as DevOps Engineer & SysOps Amazon Web Service. I have fiber optic connection for remote worker. responsibility and discipline.

Ad Maiorem Dei Gloriam.