Pendahuluan
Dalam artikel ini, saya akan mengeksplorasi berbagai perintah Docker yang penting untuk mengelola kontainer dan gambar Docker. Saya akan memberikan contoh kode dan output untuk setiap perintah agar Anda lebih memahami fungsinya.
docker pull
Perintah docker pull
memungkinkan Anda untuk mengunduh gambar dari registry Docker jarak jauh, seperti Docker Hub.
$ docker pull ubuntu:20.04
20.04: Pulling from library/ubuntu
Digest: sha256:cfb43ffdb609eb9c3ecd47d8e48e16f7abbb1c95b7340d8f883942e0730e950a
Status: Downloaded newer image for ubuntu:20.04
docker.io/library/ubuntu:20.04
docker build
Perintah docker build
membuat gambar Docker dari Dockerfile dan konteks pembangunan (biasanya direktori proyek Anda).
$ docker build -t yourusername/your-image:tag .
Sending build context to Docker daemon 2.048kB
Step 1/5 : FROM node:14
---> 91e0ff2b2a31
Step 2/5 : WORKDIR /app
---> Using cache
---> 0a0d332bddc2
Step 3/5 : COPY package*.json ./
---> Using cache
---> 7bf6e8c6d4ea
Step 4/5 : RUN npm install
---> Using cache
---> 15a0c0a4812e
Step 5/5 : COPY . .
---> 9adad8d1eeca
Successfully built 9adad8d1eeca
Successfully tagged yourusername/your-image:tag
docker run
Perintah docker run
membuat dan memulai kontainer baru dari gambar Docker.
$ docker run -d -p 8080:80 --name your-container yourusername/your-image:tag
ac7e2b3a3f7de342d0a16a7f13ea8c3425d58f5e5c5e5eb5
docker exec
Perintah docker exec
memungkinkan Anda mengeksekusi perintah di dalam kontainer yang sedang berjalan.
$ docker exec -it your-container bash
root@ac7e2b3a3f7d:/app#
docker stop
Perintah docker stop
menghentikan kontainer yang sedang berjalan.
$ docker stop your-container
your-container
docker start
Perintah docker start
memulai kembali kontainer yang telah dihentikan.
$ docker start your-container
your-container
docker restart
Perintah docker restart
memulai kembali kontainer yang sedang berjalan.
$ docker restart your-container
your-container
docker push
Perintah docker push
mengunggah gambar Docker Anda ke registry jarak jauh.
$ docker push yourusername/your-image:tag
The push refers to repository [docker.io/yourusername/your-image]
tag: digest: sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef size: 1234
docker ps
Perintah docker ps
menampilkan daftar semua kontainer yang sedang berjalan.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ac7e2b3a3f7d yourusername/your-image:tag "docker-entrypoint.s…" 3 minutes ago Up 3 minutes 0.0.0.0:8080->80/tcp your-container
docker images
Perintah docker images
menampilkan daftar semua gambar Docker yang tersedia di sistem Anda.
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
yourusername/your-image tag 9adad8d1eeca 4 hours ago 939MB
ubuntu 20.04 2c047404e52d 2 weeks ago 72.9MB
node 14 91e0ff2b2a31 3 weeks ago 943MB
docker rm
Perintah docker rm
menghapus kontainer yang telah dihentikan.
$ docker rm your-container
your-container
docker rmi
Perintah docker rmi
menghapus gambar Docker yang tidak digunakan.
$ docker rmi yourusername/your-image:tag
Untagged: yourusername/your-image:tag
Deleted: sha256:9adad8d1eeca0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e
docker logs
Perintah docker logs
menampilkan log dari sebuah kontainer.
$ docker logs your-container
Starting application...
Listening on port 80
docker attach
Perintah docker attach
memungkinkan Anda untuk menempelkan terminal Anda ke sebuah kontainer yang sedang berjalan.
$ docker attach your-container
Listening on port 80
docker cp
Perintah docker cp
memungkinkan Anda menyalin file antara kontainer dan sistem host Anda.
$ docker cp your-container:/app/data.txt /path/to/host/data.txt
(no output unless there's an error)
docker commit
Perintah docker commit
membuat gambar baru dari perubahan yang dilakukan pada sebuah kontainer.
$ docker commit -m "Added new features" -a "Your Name" your-container yourusername/your-image:new-tag
sha256:abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789
docker system prune
Perintah docker system prune
menghapus data yang tidak digunakan, seperti kontainer yang telah dihentikan, jaringan yang tidak digunakan, dan gambar yang tergantung.
$ docker system prune
WARNING! This will remove:
- all stopped containers
- all networks not used by at least one container