Tutorial Docker untuk pemula bagian 2

Tutorial Docker untuk pemula bagian 2

A.Cara Install Docker

1.Cara Install Docker di Linux

untuk yang kita install ini berbasis Fedora,centos atau almalinux

yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl start docker

untuk mengecek docker sudah berjalan bisa coba jalan perintah

docker --version
Docker version 26.1.1, build 4cf5afa

2.Cara Install Docker di Windows

pertama silahkan download dahulu software docker pada situs resmi docker https://www.docker.com/products/docker-desktop/

Double-click Docker Desktop Installer.exe dan lanjurkan proses install nya

setelah selesai

dan setelah berjalan anda bisa lewat versi GUI atau untuk CLI bisa memakai CMD

atau bisa lewat cmd

 

B.Perintah-Perintah Dasar pada Docker

1.docker version untuk melihat versi docker

docker version

2. docker info uuenutk melihat detaul version dan path dan keseluruhan instalasi docker

docker info
C:\Users\gamal>docker info
Client:
Version: 26.1.1
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.14.0-desktop.1
Path: C:\Program Files\Docker\cli-plugins\docker-buildx.exe
compose: Docker Compose (Docker Inc.)
Version: v2.27.0-desktop.2
Path: C:\Program Files\Docker\cli-plugins\docker-compose.exe
debug: Get a shell into any image or container (Docker Inc.)
Version: 0.0.29
Path: C:\Program Files\Docker\cli-plugins\docker-debug.exe
dev: Docker Dev Environments (Docker Inc.)
Version: v0.1.2
Path: C:\Program Files\Docker\cli-plugins\docker-dev.exe
extension: Manages Docker extensions (Docker Inc.)
Version: v0.2.23
Path: C:\Program Files\Docker\cli-plugins\docker-extension.exe
feedback: Provide feedback, right in your terminal! (Docker Inc.)
Version: v1.0.4
Path: C:\Program Files\Docker\cli-plugins\docker-feedback.exe
init: Creates Docker-related starter files for your project (Docker Inc.)
Version: v1.1.0
Path: C:\Program Files\Docker\cli-plugins\docker-init.exe
sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
Version: 0.6.0
Path: C:\Program Files\Docker\cli-plugins\docker-sbom.exe
scout: Docker Scout (Docker Inc.)
Version: v1.8.0
Path: C:\Program Files\Docker\cli-plugins\docker-scout.exe

Server:
Containers: 33
Running: 30
Paused: 0
Stopped: 3
Images: 10
Server Version: 26.1.1
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Using metacopy: false
Native Overlay Diff: true
userxattr: false
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 1
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
Swarm: inactive
Runtimes: runc io.containerd.runc.v2
Default Runtime: runc
Init Binary: docker-init
containerd version: e377cd56a71523140ca6ae87e30244719194a521
runc version: v1.1.12-0-g51d5e94
init version: de40ad0
Security Options:
seccomp
Profile: unconfined
Kernel Version: 5.15.146.1-microsoft-standard-WSL2
Operating System: Docker Desktop
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 3.729GiB
Name: docker-desktop
ID: f5cdea5b-1eba-441e-ae3f-202368e3ee52
Docker Root Dir: /var/lib/docker
Debug Mode: false
HTTP Proxy: http.docker.internal:3128
HTTPS Proxy: http.docker.internal:3128
No Proxy: hubproxy.docker.internal
Labels:
com.docker.desktop.address=npipe://\\.\pipe\docker_cli
Experimental: false
Insecure Registries:
hubproxy.docker.internal:5555
127.0.0.0/8
Live Restore Enabled: false

 


Images & Container


1. Melihat Images yang sudah terinstall di docker

$ docker images

contoh kasus

C:\Users\gamal>docker images
REPOSITORY                                TAG                                                                           IMAGE ID       CREATED         SIZE
docker/desktop-kubernetes                 kubernetes-v1.29.2-cni-v1.4.0-critools-v1.29.0-cri-dockerd-v0.3.11-1-debian   15340d8e9882   3 months ago    439MB
registry.k8s.io/kube-apiserver            v1.29.2                                                                       8a9000f98a52   4 months ago    127MB
registry.k8s.io/kube-scheduler            v1.29.2                                                                       6fc5e6b7218c   4 months ago    59.5MB
registry.k8s.io/kube-proxy                v1.29.2                                                                       9344fce2372f   4 months ago    82.3MB
registry.k8s.io/kube-controller-manager   v1.29.2                                                                       138fb5a3a2e3   4 months ago    122MB
registry.k8s.io/etcd                      3.5.10-0                                                                      a0eed15eed44   7 months ago    148MB
registry.k8s.io/coredns/coredns           v1.11.1                                                                       cbb01a7bd410   10 months ago   59.8MB
docker/desktop-vpnkit-controller          dc331cb22850be0cdd97c84a9cfecaf44a1afb6e                                      556098075b3d   13 months ago   36.2MB
registry.k8s.io/pause                     3.9                                                                           e6f181688397   20 months ago   744kB
docker/desktop-storage-provisioner        v2.0                                                                          99f89471f470   3 years ago     41.9MB

 

2. Download Images.

untuk  perintah ini download latest atau versi terakhir

docker pull ubuntu

untuk mendownload sesuai versi yang kita ingin kan

$ docker pull ubuntu:20.04

3. Melihat Docker Container yang sedang running.

$ docker container ls
C:\Users\gamal>docker container ls
CONTAINER ID   IMAGE                       COMMAND                  CREATED        STATUS        PORTS     NAMES
507144b04bb8   6fc5e6b7218c                "kube-scheduler --au…"   4 hours ago    Up 4 hours              k8s_kube-scheduler_kube-scheduler-docker-desktop_kube-system_a2aef464e32c9d92c9c87ecd4c049741_13
7d435ba67e67   99f89471f470                "/storage-provisione…"   28 hours ago   Up 28 hours             k8s_storage-provisioner_storage-provisioner_kube-system_e19fba89-d10b-4cbe-9dc9-ba7d5a78ca38_8
ac016341ff49   cbb01a7bd410                "/coredns -conf /etc…"   13 days ago    Up 13 days              k8s_coredns_coredns-76f75df574-fwrjd_kube-system_e2fb4f4e-ae8b-41cf-9472-94495891daa3_1
d604a1d690b9   138fb5a3a2e3                "kube-controller-man…"   13 days ago    Up 13 days              k8s_kube-controller-manager_kube-controller-manager-docker-desktop_kube-system_815abf9efdec70808b2f2e38e47476ca_2
2e210cf8a69d   556098075b3d                "/kube-vpnkit-forwar…"   13 days ago    Up 13 days              k8s_vpnkit-controller_vpnkit-controller_kube-system_2ed6a841-d7e1-445b-8780-617f36de88cd_1
17fcc24abfc4   cbb01a7bd410                "/coredns -conf /etc…"   13 days ago    Up 13 days              k8s_coredns_coredns-76f75df574-5c8zg_kube-system_f5762e85-d66c-4ee4-bbfd-6b9e251d7c16_1
09793978cbac   9344fce2372f                "/usr/local/bin/kube…"   13 days ago    Up 13 days              k8s_kube-proxy_kube-proxy-9dzww_kube-system_23df63a8-bfc5-4592-a532-d92bee7fe5ba_1

 

4. Melihat semua list Docker Container.

$ docker container ls -a
C:\Users\gamal>docker container ls -a
CONTAINER ID   IMAGE                       COMMAND                  CREATED        STATUS        PORTS     NAMES
507144b04bb8   6fc5e6b7218c                "kube-scheduler --au…"   4 hours ago    Up 4 hours              k8s_kube-scheduler_kube-scheduler-docker-desktop_kube-system_a2aef464e32c9d92c9c87ecd4c049741_13
7d435ba67e67   99f89471f470                "/storage-provisione…"   28 hours ago   Up 28 hours             k8s_storage-provisioner_storage-provisioner_kube-system_e19fba89-d10b-4cbe-9dc9-ba7d5a78ca38_8
ac016341ff49   cbb01a7bd410                "/coredns -conf /etc…"   13 days ago    Up 13 days              k8s_coredns_coredns-76f75df574-fwrjd_kube-system_e2fb4f4e-ae8b-41cf-9472-94495891daa3_1
d604a1d690b9   138fb5a3a2e3                "kube-controller-man…"   13 days ago    Up 13 days              k8s_kube-controller-manager_kube-controller-manager-docker-desktop_kube-system_815abf9efdec70808b2f2e38e47476ca_2
2e210cf8a69d   556098075b3d                "/kube-vpnkit-forwar…"   13 days ago    Up 13 days              k8s_vpnkit-controller_vpnkit-controller_kube-system_2ed6a841-d7e1-445b-8780-617f36de88cd_1
17fcc24abfc4   cbb01a7bd410                "/coredns -conf /etc…"   13 days ago    Up 13 days              k8s_coredns_coredns-76f75df574-5c8zg_kube-system_f5762e85-d66c-4ee4-bbfd-6b9e251d7c16_1
09793978cbac   9344fce2372f                "/usr/local/bin/kube…"   13 days ago    Up 13 days              k8s_kube-proxy_kube-proxy-9dzww_kube-system_23df63a8-bfc5-4592-a532-d92bee7fe5ba_1
b7a20402b5ae   registry.k8s.io/pause:3.9   "/pause"                 13 days ago    Up 13 days              k8s_POD_coredns-76f75df574-fwrjd_kube-system_e2fb4f4e-ae8b-41cf-9472-94495891daa3_1
2c2aeeab4cc9   registry.k8s.io/pause:3.9   "/pause"                 13 days ago    Up 13 days              k8s_POD_vpnkit-controller_kube-system_2ed6a841-d7e1-445b-8780-617f36de88cd_1
0f40ac28e225   registry.k8s.io/pause:3.9   "/pause"                 13 days ago    Up 13 days              k8s_POD_storage-provisioner_kube-system_e19fba89-d10b-4cbe-9dc9-ba7d5a78ca38_1
da55af166cec   registry.k8s.io/pause:3.9   "/pause"                 13 days ago    Up 13 days              k8s_POD_coredns-76f75df574-5c8zg_kube-system_f5762e85-d66c-4ee4-bbfd-6b9e251d7c16_1
d23f044f0486   registry.k8s.io/pause:3.9   "/pause"                 13 days ago    Up 13 days              k8s_POD_kube-proxy-9dzww_kube-system_23df63a8-bfc5-4592-a532-d92bee7fe5ba_1
922b2379d085   8a9000f98a52                "kube-apiserver --ad…"   13 days ago    Up 13 days              k8s_kube-apiserver_kube-apiserver-docker-desktop_kube-system_91838c84176e55a239acd0e97bb0c8cf_1
4051d16c26fe   a0eed15eed44                "etcd --advertise-cl…"   13 days ago    Up 13 days              k8s_etcd_etcd-docker-desktop_kube-system_a7259c8a6f480a66649ce97631b20e6f_1
ee5691b19bb2   registry.k8s.io/pause:3.9   "/pause"                 13 days ago    Up 13 days              k8s_POD_etcd-docker-desktop_kube-system_a7259c8a6f480a66649ce97631b20e6f_1
8d809be75ce8   registry.k8s.io/pause:3.9   "/pause"                 13 days ago    Up 13 days              k8s_POD_kube-controller-manager-docker-desktop_kube-system_815abf9efdec70808b2f2e38e47476ca_1
3d505a7a30f5   registry.k8s.io/pause:3.9   "/pause"                 13 days ago    Up 13 days              k8s_POD_kube-scheduler-docker-desktop_kube-system_a2aef464e32c9d92c9c87ecd4c049741_1
cfcc559d77b9   registry.k8s.io/pause:3.9   "/pause"                 13 days ago    Up 13 days              k8s_POD_kube-apiserver-docker-desktop_kube-system_91838c84176e55a239acd0e97bb0c8cf_1

 

5. Membuat Docker Container.

$ docker container create --name mongodb1 mongo:4.0

6. Start Container.

$ docker container start mongodb1

7. Mencari Images.

$ docker search mysql

8. Stop Container.

$ docker container stop mongodb1

9. Menghapus Container.

$ docker container rm mongodb1

10. Membuat Container yang dapat diakses dari host. Dengan kata lain, membuka port pada Container sehingga service yang dijalankan dapat diakses dari luar.

$ docker container create --name mongodb2 -p 1234:27017 mongo

11. Menjalankan Images secara langsung. Sehingga, container akan otomatis terbentuk dari Image tersebut.

$ docker run -itd mongo

 

12. Menjalankan Image secara langsung dan otomatis membuat container. Dan juga membuka port untuk container tersebut. Contohnya pada Image mysql/mysql-server.

$ docker run -d --name mysqlserver1 -p 1234:3306 mysql/mysql-server

 

13. Masuk ke dalam Container.

$ docker exec -it mongodb2 bash

 

Nanti mungkin anda akan menemui beberapa sedikit masalah, seperti Image yang tidak bisa di start dengan perintah:

$ docker container start namacontainer

 

walaupun Container tersebut sudah dibuat sebelumnya. Tetapi Image tersebut akan jalan ketika langsung dijalankan dari Image-nya, contohnya seperti mysql atau mysql/mysql-server.

Jadi ada langkah tertentu untuk menjalankan Image tertentu. Seperti mysql/mysql-server, anda bisa melihat dokumentasi resminya. Container mysql dapat di jalankan dengan perintah:

$ docker run -itd --name mysqlserver1 -p 1234:3306 mysql/mysql-server

 

Ketika dilihat pada running Container, maka Container tersebut langsung berjalan.

Jadi perintah tersebut akan membuat container otomatis dari image mysql/mysql-server. Jika image mysql/mysql-server tidak ada di repository local, maka dia akan download image dari registry.

$ docker ps

 

atau

$ docker container ls

 

14. Membuat Volume

$ docker volume create data1
$ docker volume create data2

 

Untuk melihat volume yang sudah dibuat pada docker, ketikkan perintah:

$ docker volume ls

 

Untuk membuat container dengan mencantumkan volume yang ada dapat menggunakan opsi -v.

$ docker run -itd --name mysqlserver1 -v data1:/var/lib/mysql -p 1234:3306 mysql

 

Perintah tersebut akan me-mount volume data1 ke direktori /var/lib/mysql/ pada container mysqlserver1.

15. Melakukan Commit Container

$ docker commit container1 image1

 

Perintah tersebut akan membuat image dengan nama image1 dari container yang sedang running yaitu container1. Jadi kondisi container1 yang sekarang akan disimpan dalam image1.

Jika terjadi perubahan pada container1, maka ketika nanti membuat container baru dari image1 maka perubahan tersebut akan tetap ada.

Author Details
admin dari seorang yang terus belajar dan mencatat pengalaman kasus tentang server dan web semoga berguna untuk yang lain 🙂 untuk memecahkan masalah yang sama

Comments

comments