pengenalan & tutorial dasar docker pada centos 7

0
1276

halo sobat sekolahlinux, kali ini saya akan memberikan sedikit tutorial dan penjelasan tentang docker, docker pada awalnya didirikan tahun 2009 dengan menggunakan nama dotcloud inc, dan pada tahun 2013 berubah nama menjadi docker hingga saat ini, dotcloud inc sendiri akhirnya pada 29 february 2016 di matikan, docker sendiri ialah aplikasi yang bersifat opensource dan berfungsi sebagai container untuk memasukan sebuah software secara lengkap beserta file & hal pendukung lainnya agar software tersebut dapat berjalan dengan baik dan normal.

part utama docker terdiri dari:

  • docker daemon: digunakan untuk memanage docker (LXC) container pada host dimana docker itu di install
  • docker CLI: digunakan untuk memberikan perintah untuk berkomunikasi dengan docker daemon
  • docker image index atau docker registry: digunakan untuk meletakan image docker baik yang bersifat public ataupun private

element utama docker terdiri dari:

  • docker container: sebuah image docker yang dijalankan pada sebuah host/node sehingga image tersebut dapat berjalan dan mempunyai akses write & read
  • docker images: sebuah template yang berisi aplikasi & os yang sudah siap pakai yang nantinya digunakan untuk dijalankan sebagai container
  • dockerfiles: merupakah sekumpulan script yang berada dalam satu file, yang script didalamnya nantinya digunakan untuk membuat/memodifikasi suatu image, hingga menjadi image baru

pada tutorial kali ini saya menggunakan os centos 7  sebagai os untuk host tempat menjalankan dockernya, pertama install dulu dockernya dan jalankan servicenya

yum install docker -y
service docker start
chkconfig docker on

untuk download atau pull image dari docker-hub registry kita bisa menggunakan perintah dibawah

#docker pull image_name
docker pull nginx

untuk mencari image yang kita inginkan pada docker-hub registry kita bisa menggunakan perintah dibawah

#docker search image_name
docker search nginx

untuk menampilkan list image yang telah kita pull atau download ke server docker host, kita bisa menggunakan port dibawah

docker images

untuk menampilkan container yang stop ataupun yang running kita bisa menggunakan perintah dibawah, selain itu kita juga bisa menampilkan detail container seperti container_name, container_id dll

#menampilkan container yang running
docker ps

#menampilkan container, baik yang statusnya stop ataupun running
docker ps -a

untuk menjalankan & stop container pada docker host kalian bisa menggunakan perintah dibawah

#perintah untuk menjalankan container pada container yang stop
#docker start container_name/container_id
docker start sekolahlinux-nginx

#perintah stop container pada container yang berjalan/running
#docker stop container_name/container_id
docker stop sekolahlinux-nginx

perintah dibawah digunakan untuk menghapus container pada docker host, untuk bisa menghapus container pada docker host kalian harus membuat container tersebut dalam status stop

#docker rm container_name/container_id
docker rm sekolahlinux-nginx

perintah dibawah untuk delete images yang sudah di pull, untuk bisa menghapus image di docker host dengan lancar biasanya diharuskan menghapus container yang berhubungan, namun bisa juga dihapus tanpa harus hapus container bersangkutan dengan cara menambahkan paramater -f

#docker rmi image_name
docker rmi nginx

#menghapus docker image dengan paksa
docker rmi -f nginx

pada tahap ini saya akan membuat container menggunakan image nginx dengan feature port expose & persisten volume

docker run --name sekolahlinux-nginx -p 1108:80 -v /mnt/sekolahlinux:/usr/share/nginx/html -d nginx
  • run : adalah paramater untuk memulai menjalankan sebuah image menjadi container
  • –name : adalah paramater untuk memberi nama container yang akan dibuat
  • -p : adalah paramater yang digunakan untuk mengekspose port container ke luar
  • -v : adalah paramater yang digunakan untuk kebutuhan persisten volume
  • /mnt/sekolahlinux : path direktori volume yg ada di docker host
  • /usr/share/nginx/html : path direktorik volume yg ada di docker container
  • -d : melakukan detached pada container yang sudah run

pada dasarnya saya secara pribadi mengkategorikan image pada docker menjadi 2, ingat ya ini pendapat saya secara personal hehe, yang pertama image docker yang bersifat pasif dan yang kedua image docker yang bersifat aktif, image docker aktif biasanya proses service os atau apps nya berjalan di foreground, sedangkan image docker pasif biasanya proses service os atau apps nya berjalan di background dan biasanya container yang di build dengan image tipe pasif ini akan langsung stop setelah di running, lalu bagaimana caranya agar container yang dibuat menggunakan image pasif tetap running, berikut ini perintahnya

docker run -i -t --name sekolahlinux-ubuntu ubuntu
  • -i : untuk memulai sesi interaktif
  • -t : untuk mengalokasinya tty & attach stdin
  • –name : untuk memberikan nama container

untuk keluar dari containernya bisa dengan perintah ctrl+p lalu ctrl+q, lalu untuk masuk kembali kedalam containernya kalian bisa menggunakan perintah dibawah

#docker attach container-name
docker attach sekolahlinux-ubuntu

pada image tipe aktif untuk kita bisa masuk sambil melakukan perintah lainnya harus dengan cara dibawah ini, yaitu dengan mengaktifkan mode bash, karena jika tidak kita tidak bisa melakukan hal lainnya dikarenakan terhalang oleh proses yang berjalan di foreground

#docker exec -i -t container_name/container_id ARG
docker exec -i -t akbar-nginx bash
  • -exec : paramater untuk memulai suatu perintah baru pada container yang sedang berjalan
  • -i : untuk memulai sesi interaktif
  • -t : untuk mengalokasinya tty & attach stdin

untuk menambahkan record pada file /etc/hosts pada docker container kalian harus menambahkan parameter –add-host seperti contoh dibawah

#docker run -it --add-host=alias:ip_dest image_name
docker run -it --add-host=mysql:10.180.0.1 nginx

agar container 1 bisa berkomunikasi dengan container lainnya hanya dengan memanggil nama containernya kalian bisa menggunakan cara dibawah

#docker run -it --link name/id_container:alias image_name
docker run -it --link mysql:db-server nginx

sekian tutorial kali ini, jika ada kekurangan atau kesalahan tolong dikoreksi di kolom komentar dibawah ya 😀