Baca tentang Dockerfile Directives: ENTRYPOINT untuk melihat catatan sebelumnya. Disini akan dibahas mengenai Dockerfile Directives: EXPOSE. Langsung saja.
Pertama, buat direktori baru bernama ApacheInstall di dalam direktori Builds, buat juga file Dockerfile nya.
Isikan Dockerfile dengan :
# Based Image CentOS 7 dan Install Apache FROM centos:latest MAINTAINER miss RUN yum update -y RUN yum install -y httpd net-tools RUN echo "Ini adalah Costum Image. Selamat Datang:)" > /var/www/html/index.html ENTRYPOINT apachectl "-DFOREGROUND"

Lalu build image baru menggunakan Dockerfile diatas dengan nama image centos7:apache2:v1 .
$ docker build -t centos/apache2:v1 .

Lihat base image :
$ docker images

Berikut akan saya tampilkan cara menjalankan 3 container berbeda sebelum ada command EXPOSE :
PERTAMA
Kita akan menjalankan container baru dengan cara biasa dan mengaksesnya dengan IP Address menggunakan image centos7/apache2:v1 tadi :
$ docker run -d --name apacheweb1 centos/apache2:v1

Note : perintah –name merupakan perintah untuk membuat nama container sesuai selera.
Pastikan sudah berjalan :
$ docker ps

Lihat IP Address dari Container yang bernama apacheweb1 tadi :
$ docker inspect apacheweb1 | grep IPAdd

Lalu lihat tampilan web menggunakan IP Address di atas :
$ elinks http://172.17.0.2

Coba stop container apacheweb1 :
$ docker stop apacheweb1

Dan coba lihat file tampilan index.html nya :
$ docker exec apacheweb1 /bin/cat /var/www/html/index.html

Tidak ada respon. Mengapa? Karena container sudah dimatikan.
KEDUA
Perbedaannya dengan container sebelumnya yaitu adanya opsi -P yaitu agar container mendapat redirect port otomatis dengan perintah :
$ docker run -d --name apacheweb2 -P centos/apache2:v1

Dan ternyata lihat container yang sedang aktif, dalam kolom PORT masih kosong :

KETIGA
Kita buat opsi redirect port manual dengan opsi -p (huruf kecil) dengan menjalankan perintah berikut :
$ docker run -d --name apacheweb3 -p 8080:80 centos/apache2:v1

Lalu lihat base image :
$ docker images

Cek di tampilan http://localhost:8080 maka akan terlihat tampilan web karena port 80 sudah dialihkan ke 8080.
$ elinks http://localhost:8080

Lalu stop container.
$ docker stop apacheweb3

Nah, setelah mencoba ketiga cara di atas, kini coba tambahkan opsi EXPOSE di dalam file Dockerfile :
EXPOSE 80

Fungsinya nanti akan secara otomatis redirect port mulai dari 37268.
Lalu build image bar dengan nama centos7/apache:v2 :
$ docker build -t centos7/apache2:v2 .

Lalu coba jalankan container baru :
$ docker run -d --name apacheweb4 -P centos7/apache2:v1

Dan lihat, port secara otomatis akan keredirect ke 32768.
$ docker ps

Dan bisa diuji coba kembali :
$ elinks http://localhost:32768

Sekian:)