Akhir – akhir ini saya sedang belajar menggunakan Docker, dan pemakaiannya cukup simple. Mungkin tulisan kali ini sebagai archive saya. Dikarenakan saya sendiri suka lupa apa yang saya pelajari, padahal command nya cukup mudah. Entah kenapa suka lupa beberapa command line yang akan digunakan. Langsung aja ke topik pembahasan. Pada tulisan ini akan dibahas mengenai cara instalasi, deploy container, dan command lainnya. Untuk case yang lebih sulit lagi mungkin akan saya buatkan tutorial dilain waktu.
Pengertian Docker
Docker adalah salah satu platform yang dibangun berdasarkan teknologi container. Docker merupakan sebuah project open-source yang menyediakan platform terbuka untuk developer maupun sysadmin untuk dapat membangun, mengemas, dan menjalankan aplikasi dimanapun sebagai sebuah wadah (container) yang ringan.
Untuk tuturial ini saya menggunakan OpenSuse sebagai sistem operasinya, atau docker hostnya. Docker sendiri terdiri dari 2 tipe yaitu:
Docker Community Edition (CE) Stable yang biasanya merilis versi stabil 4 kali per tahun dan merilis patch sistem sesuai dengan kebutuhan, versi ini Gratis.
Docker Enterprise Edition (EE) rilis biasanya 2 kali per tahun untuk versi stabilnya dan merilis patch sesuai dengan kebutuhan juga, versi ini Berbayar.
Install Docker
Update sistem opensuse.
Caradwinar@dwinar:~> sudo zypper up
Install docker
dwinar@dwinar:~> sudo zypper in docker -y
Enable servis docker dan start servis nya.
dwinar@dwinar:~> systemctl enable docker dwinar@dwinar:~> systemctl start docker
Cek status docker.
dwinar@dwinar:~> sudo systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2019-07-26 07:56:56 WIB; 1h 41min ago Docs: http://docs.docker.com Main PID: 1630 (dockerd) Tasks: 46 Memory: 197.0M CPU: 32.379s CGroup: /system.slice/docker.service ├─1630 /usr/bin/dockerd --add-runtime oci=/usr/sbin/docker-runc └─1677 docker-containerd --config /var/run/docker/containerd/containerd.toml --log-level warn dwinar@dwinar:~>
Catatan : Pastikan setelah menginstall docker lalu mengecek servis dockernya berjalan. Jika saat pengecekan tidak berjalan, bisa lakukan restart pada servis docker nya. Untuk commandnya sebagai berikut:
sudo systemctl restart docker
Menambahkan User Biasa ke Grup Docker
Dikarenakan saya hendak menjalankan perintah docker pada user biasa, jadi saya harus menambahkan user biasa tersebut kedalam grup docker. Karena jika tidak harus menggunakan sudo atau login sebagai akun root terlebih dahulu agar dapat menjalankan perintah docker. Untuk menambahkan user ke grup docker, berikut adalah commandnya. Untuk user bisa disesuaikan dengan user biasa kalian.
dwinar@dwinar:~> usermod -a -G docker dwinar
Catatan : Jika setelah menjalankan perintah diatas namun, masih belum bisa menjalankan perintah docker pada user biasa. Coba logout terlebih dahulu dari akun biasa tersebut. Lalu lakukan jalankan perintah docker kembali menggunakan user biasa tersebut.
Docker Command
Untuk memulai menggunakan docker tentu anda perlu mengerti dari setiap perintah dari docker. Karena jika tidak anda tidak bisa menggunakan docker, karena secara default docker berjalan dengan menggunakan command line interface atau (CLI). Untuk perintah pada docker terdiri dari serangkain opsi perintah yang diikuti oleh argumen. Untuk format sintak nya adalah sebagai berikut:
docker [option] [command] [arguments]
Untuk detail dari setiap fungsi perintah dari command docker. Anda cukup mengetik docker pada terminal anda, lalu tekan enter.
docker
Maka akan muncul serangkaian semua perintah pada docker.
Berikut saya rangkum perintah pada docker.
attach Attach local standard input, output, and error streams to a running container build Build an image from a Dockerfile commit Create a new image from a container's changes cp Copy files/folders between a container and the local filesystem create Create a new container diff Inspect changes to files or directories on a container's filesystem events Get real time events from the server exec Run a command in a running container export Export a container's filesystem as a tar archive history Show the history of an image images List images import Import the contents from a tarball to create a filesystem image info Display system-wide information inspect Return low-level information on Docker objects kill Kill one or more running containers load Load an image from a tar archive or STDIN login Log in to a Docker registry logout Log out from a Docker registry logs Fetch the logs of a container pause Pause all processes within one or more containers port List port mappings or a specific mapping for the container ps List containers pull Pull an image or a repository from a registry push Push an image or a repository to a registry rename Rename a container restart Restart one or more containers rm Remove one or more containers rmi Remove one or more images run Run a command in a new container save Save one or more images to a tar archive (streamed to STDOUT by default) search Search the Docker Hub for images start Start one or more stopped containers stats Display a live stream of container(s) resource usage statistics stop Stop one or more running containers tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE top Display the running processes of a container unpause Unpause all processes within one or more containers update Update configuration of one or more containers version Show the Docker version information wait Block until one or more containers stop, then print their exit codes
Untuk melihat detail dari fungsi yang tersedia dari setiap command pada docker, anda bisa menggunakan perintah berikut:
docker docker-subcommand --help
Untuk melihat detail atau informasi sistem docker yang digunakan dapat menggunakan command berikut:
docker info
Menampilkan docker version
dwinar@dwinar:~> docker version Client: Version: 18.09.6 API version: 1.39 Go version: go1.10.8 Git commit: 481bc7715621 Built: Fri Jun 7 12:00:00 2019 OS/Arch: linux/amd64 Experimental: false Server: Engine: Version: 18.09.6 API version: 1.39 (minimum version 1.12) Go version: go1.10.8 Git commit: 481bc7715621 Built: Fri Jun 7 12:00:00 2019 OS/Arch: linux/amd64 Experimental: false
Menampilkan docker info
dwinar@dwinar:~> docker info Containers: 3 Running: 0 Paused: 0 Stopped: 3 Images: 31 Server Version: 18.09.6 Storage Driver: btrfs Build Version: Btrfs v4.19.1 Library Version: 102 Logging Driver: json-file Cgroup Driver: cgroupfs Plugins: Volume: local Network: bridge host macvlan null overlay Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog Swarm: inactive Runtimes: oci runc Default Runtime: runc Init Binary: docker-init containerd version: bb71b10fd8f58240ca47fbb579b9d1028eea7c84 runc version: 2b18fe1d885ee5083ef9f0838fee39b62d653e30 init version: v0.1.3_catatonit (expected: fec3683b971d9c3ef73f284f176672c44b448662) Security Options: apparmor seccomp Profile: default Kernel Version: 4.12.14-lp151.28.10-default Operating System: openSUSE Leap 15.1 OSType: linux Architecture: x86_64Cara CPUs: 8 Total Memory: 15.54GiB Name: dwinar ID: YLIH:GH46:5X42:F4K4:LRD3:MRFM:U2CQ:TPOL:UWCN:4OL7:PXUX:X2EJ Docker Root Dir: /var/lib/docker Debug Mode (client): false Debug Mode (server): false Username: dwinar08 Registry: https://index.docker.io/v1/ Labels: Experimental: false Insecure Registries: 127.0.0.0/8 Live Restore Enabled: false WARNING: No swap limit support
Uji coba install docker
dwinar@dwinar:~> docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 1b930d010525: Pull complete Digest: sha256:6540fc08ee6e6b7b63468dc3317e3303aae178cb8a45ed3123180328bcc1d20f Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. Cara To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
cek image docker
dwinar@dwinar:~> docker images REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest fce289e99eb9 6 months ago 1.84kB
Cek konterner docker
dwinar@dwinar:~> docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 87ddf170725d hello-world "/hello" About a minute ago Exited (0) About a minute ago upbeat_vaughan
Mungkin segini dulu tulisan kali ini, nanti saya sambung kembali di tulisan lainnya. Terimakasih telah membaca.