Pada tutorial sebelumnya kita telah belajar bagaimana cara deploy website HTML dengan metode copy file website ke dalam container. Container tersebut bisa kita jadikan image.
Misalnya membuat Docker image dengan nama web-freelancer:v1 dari container web-freelancer.
1
docker commit web-freelancer web-freelancer:v1
Menampilkan Docker images untuk mengetahui apakah image yang dibuat sudah tercipta.
1
docker images
Contoh hasil perintah di atas.
1
2
REPOSITORY TAG IMAGE ID CREATED SIZE
web-freelancer v1 0086656c5db9 7 seconds ago 844MB
Cara Kedua: Build dari Dockerfile
Dockerfile adalah sebuah file teks konfigurasi yang mendeskripsikan instruksi atau perintah yang dijalankan saat proses pembuatan Docker image.
Membuat Dockerfile.
1
nano Dockerfile
Isi dari Dockerfile.
1
2
3
4
5
FROM nginx:stable-alpine
LABEL maintainer="Musa Amin <[email protected]>"
COPY freelancer/. /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
- FROM = basis image yang digunakan
- LABEL maintainer = nama pembuat
- COPY = copy isi folder ke folder di container
- EXPOSE = buka (publish) port 80
- CMD = perintah yang dijalankan
Jalankan perintah build image yang menghasilkan image dengan nama web-freelancer:v1.
1
docker build -t web-freelancer:v1 .
Contoh hasil perintah di atas.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sending build context to Docker daemon 647.2kB
Step 1/5 : FROM nginx:stable-alpine
---> e1ccef1fb908
Step 2/5 : LABEL maintainer="Musa Amin <[email protected]>"
---> Running in 9d5ec8ad6e66
Removing intermediate container 9d5ec8ad6e66
---> e1d4af9c4a81
Step 3/5 : COPY freelancer/. /usr/share/nginx/html
---> 2427540472a7
Step 4/5 : EXPOSE 80
---> Running in ee5755a4d8ab
Removing intermediate container ee5755a4d8ab
---> 86ceb19cc687
Step 5/5 : CMD ["nginx", "-g", "daemon off;"]
---> Running in 4f57d1a56fe3
Removing intermediate container 4f57d1a56fe3
---> 1915e927a451
Successfully built 1915e927a451
Successfully tagged web-freelancer:v1
Menampilkan Docker images.
1
2
3
4
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
web-freelancer v1 1915e927a451 24 seconds ago 23.1MB
Informasi lengkap mengenai Docker build baca di docs.docker.com.
Upload (push) image
Selanjutnya kita akan upload (push) image ke Docker registry, Docker Hub.
Buatlah akun terlebih dahulu di hub.docker.com.
Login ke Docker Hub.
1
docker login
Contoh hasil perintah di atas.
1
2
3
4
5
6
7
8
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: musaamin
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
image yang akan di-push harus menyertakan username registry. Misalnya username saya adalah musaamin, berarti nama images harus musaamin/repository:tag.