{"id":7939,"date":"2020-03-23T16:56:20","date_gmt":"2020-03-23T08:56:20","guid":{"rendered":"http:\/\/rmohan.com\/?p=7939"},"modified":"2020-03-23T16:56:24","modified_gmt":"2020-03-23T08:56:24","slug":"how-to-install-docker-ce-and-docker-compose-on-centos-8","status":"publish","type":"post","link":"https:\/\/mohan.sg\/?p=7939","title":{"rendered":"How to Install Docker CE and Docker-Compose on CentOS 8"},"content":{"rendered":"\n<p><a href=\"https:\/\/www.docker.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker<\/a>&nbsp;is a set of&nbsp;<strong>Platform as a Service (PaaS)<\/strong>&nbsp;products that uses operating system level virtualizations to deliver software in the form of containers.&nbsp;<strong>Docker CE (Community Edition)<\/strong>&nbsp;is the strip down version of&nbsp;<strong>Docker EE (Enterprise Edition)<\/strong>. Docker CE is free and open source and distributed under&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Apache_License#Version_2.0\" target=\"_blank\" rel=\"noreferrer noopener\">Apache License 2.0<\/a>.<\/p>\n\n\n\n<p>In&nbsp;<strong>Red Hat Enterprise Linux (RHEL) 8<\/strong>&nbsp;\/&nbsp;<strong>CentOS 8<\/strong>, Support of&nbsp;<strong>Docker<\/strong>&nbsp;has been removed by the vendor. Whereas a new containerization platform&nbsp;<strong>libpod&nbsp;(Podman&#8217;s Container Management Library)<\/strong>&nbsp;has been introduced inplace of&nbsp;<strong>Docker<\/strong>.<\/p>\n\n\n\n<p>However, we can still install Docker and it\u2019s dependencies on CentOS 8 \/ RHEL 8 from third party yum repositories.<\/p>\n\n\n\n<p>In this article, we are&nbsp;<strong>installing Docker CE and docker-compose on CentOS 8<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Prerequisites<\/h2>\n\n\n\n<ul><li>You must have Alibaba Cloud&nbsp;<a href=\"https:\/\/www.alibabacloud.com\/product\/ecs\" target=\"_blank\" rel=\"noreferrer noopener\">Elastic Compute Service (ECS)<\/a>&nbsp;activated and verified your valid payment method. If you are a new user, you can&nbsp;<a href=\"https:\/\/www.alibabacloud.com\/referral?referralCode=uaf6li\" target=\"_blank\" rel=\"noreferrer noopener\">get $450 \u2013 $1300<\/a>&nbsp;worth in Alibaba Cloud credits for your new account. If you don&#8217;t know how to setup your ECS instance, you can refer to this&nbsp;<a href=\"https:\/\/www.alibabacloud.com\/blog\/3-ways-to-set-up-a-linux-server-on-alibaba-cloud_572384\" target=\"_blank\" rel=\"noreferrer noopener\">tutorial<\/a>&nbsp;or&nbsp;<a href=\"https:\/\/www.alibabacloud.com\/help\/doc-detail\/25422.htm\" target=\"_blank\" rel=\"noreferrer noopener\">quick-start guide<\/a>.<\/li><li>A&nbsp;<a href=\"https:\/\/www.alibabacloud.com\/domain\" target=\"_blank\" rel=\"noreferrer noopener\">domain name<\/a>&nbsp;registered from Alibaba Cloud. If you have already registered a domain from Alibaba Cloud or any other host, you can update its domain nameserver records.<\/li><li>Domain name must be pointed to your Alibaba Cloud ECS&#8217;s IP address<\/li><li>Access to VNC console in your Alibaba Cloud or SSH client installed in your PC<\/li><li>Set up your server&#8217;s hostname and create a user with root privileges.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Environment Specification<\/h2>\n\n\n\n<p>We have configured a CentOS 8 virtual machine with following specifications.<\/p>\n\n\n\n<ul><li><strong>CPU<\/strong>&nbsp;\u2013 3.4 Ghz (2 cores)<\/li><li><strong>Memory<\/strong>&nbsp;\u2013 2 GB<\/li><li><strong>Storage<\/strong>&nbsp;\u2013 40 GB<\/li><li><strong>Operating System&nbsp;<\/strong>\u2013 CentOS 8.0<\/li><li><strong>Hostname<\/strong>&nbsp;\u2013 docker-01.example.com<\/li><li><strong>IP Address<\/strong>&nbsp;\u2013 192.168.116.6\/24<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Adding Docker CE yum Repository on CentOS 8:<\/h2>\n\n\n\n<p>Connect with&nbsp;<strong>docker-01.example.com<\/strong>&nbsp;using&nbsp;<strong>ssh<\/strong>&nbsp;as&nbsp;<strong>root<\/strong>&nbsp;user.<\/p>\n\n\n\n<p><strong>Docker CE<\/strong>&nbsp;is available to download from&nbsp;<a href=\"https:\/\/www.docker.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker&#8217;s Official Website<\/a>&nbsp;However, we can also install it from Docker CE yum repository.<\/p>\n\n\n\n<p>Add Docker CE yum repository using&nbsp;<strong>dnf<\/strong>&nbsp;command.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[root@docker-01 ~]# dnf config-manager --add-repo=https:\/\/download.docker.com\/linux\/centos\/docker-ce.repo\nAdding repo from: https:\/\/download.docker.com\/linux\/centos\/docker-ce.repo<\/code><\/pre>\n\n\n\n<p>Build cache for Docker yum repository.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[root@docker-01 ~]# dnf makecache\nCentOS-8 - AppStream                            7.0 kB\/s | 4.3 kB     00:00\nCentOS-8 - Base                                 2.2 kB\/s | 3.9 kB     00:01\nCentOS-8 - Extras                               1.7 kB\/s | 1.5 kB     00:00\nDocker CE Stable - x86_64                       6.5 kB\/s |  21 kB     00:03\nMetadata cache created.<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Installing Docker CE on CentOS 8:<\/h2>\n\n\n\n<p>After addition of&nbsp;<strong>Docker CE<\/strong>&nbsp;yum repository, we can now easily install&nbsp;<strong>Docker CE<\/strong>&nbsp;on CentOS 8 by using a&nbsp;<strong>dnf<\/strong>&nbsp;command.<\/p>\n\n\n\n<p><strong>Docker CE<\/strong>&nbsp;requires&nbsp;<strong>containerd.io-1.2.2-3 (or later)<\/strong>&nbsp;package, which is blocked in CentOS 8. Therefore, we have to use an earlier version of&nbsp;<strong>containerd.io<\/strong>&nbsp;package.<\/p>\n\n\n\n<p>Install&nbsp;<strong>docker-ce<\/strong>&nbsp;with an earlier version of&nbsp;<strong>containerd.io<\/strong>&nbsp;using following command.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[root@docker-01 ~]# dnf -y install --nobest docker-ce\nLast metadata expiration check: 0:21:14 ago on Wed 25 Dec 2019 10:25:37 PM PKT.\nDependencies resolved.\n\n Problem: package docker-ce-3:19.03.5-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed\n  - cannot install the best candidate for the job\n  - package containerd.io-1.2.10-3.2.el7.x86_64 is excluded\n  - package containerd.io-1.2.2-3.3.el7.x86_64 is excluded\n  - package containerd.io-1.2.2-3.el7.x86_64 is excluded\n  - package containerd.io-1.2.4-3.1.el7.x86_64 is excluded\n  - package containerd.io-1.2.5-3.1.el7.x86_64 is excluded\n  - package containerd.io-1.2.6-3.3.el7.x86_64 is excluded\n================================================================================\n Package                      Arch   Version             Repository        Size\n================================================================================\nInstalling:\n docker-ce                    x86_64 3:18.09.1-3.el7     docker-ce-stable  19 M\nInstalling dependencies:\n container-selinux            noarch 2:2.94-1.git1e99f1d.module_el8.0.0+58+91b614e7\n                                                         AppStream         43 k\n checkpolicy                  x86_64 2.8-2.el8           BaseOS           338 k\n libcgroup                    x86_64 0.41-19.el8         BaseOS            70 k\n policycoreutils-python-utils noarch 2.8-16.1.el8        BaseOS           228 k\n python3-audit                x86_64 3.0-0.10.20180831git0047a6c.el8\n                                                         BaseOS            85 k\n python3-libsemanage          x86_64 2.8-5.el8           BaseOS           127 k\n python3-policycoreutils      noarch 2.8-16.1.el8        BaseOS           2.2 M\n python3-setools              x86_64 4.2.0-2.el8         BaseOS           598 k\n containerd.io                x86_64 1.2.0-3.el7         docker-ce-stable  22 M\n docker-ce-cli                x86_64 1:19.03.5-3.el7     docker-ce-stable  39 M\nEnabling module streams:\n container-tools                     rhel8\nSkipping packages with broken dependencies:\n docker-ce                    x86_64 3:19.03.5-3.el7     docker-ce-stable  24 M\n\nTransaction Summary\n================================================================================\nInstall  11 Packages\nSkip      1 Package\n\nTotal download size: 84 M\nInstalled size: 348 M\nDownloading Packages:\n(1\/11): libcgroup-0.41-19.el8.x86_64.rpm        182 kB\/s |  70 kB     00:00\n(2\/11): container-selinux-2.94-1.git1e99f1d.mod 108 kB\/s |  43 kB     00:00\n(3\/11): python3-audit-3.0-0.10.20180831git0047a 102 kB\/s |  85 kB     00:00\n(4\/11): policycoreutils-python-utils-2.8-16.1.e 132 kB\/s | 228 kB     00:01\n(5\/11): python3-libsemanage-2.8-5.el8.x86_64.rp 106 kB\/s | 127 kB     00:01\n(6\/11): checkpolicy-2.8-2.el8.x86_64.rpm        126 kB\/s | 338 kB     00:02\n(7\/11): python3-setools-4.2.0-2.el8.x86_64.rpm  113 kB\/s | 598 kB     00:05\n(8\/11): python3-policycoreutils-2.8-16.1.el8.no 109 kB\/s | 2.2 MB     00:20\n(9\/11): docker-ce-18.09.1-3.el7.x86_64.rpm       75 kB\/s |  19 MB     04:16\n(10\/11): containerd.io-1.2.0-3.el7.x86_64.rpm    80 kB\/s |  22 MB     04:41\n(11\/11): docker-ce-cli-19.03.5-3.el7.x86_64.rpm 122 kB\/s |  39 MB     05:31\n--------------------------------------------------------------------------------\nTotal                                           240 kB\/s |  84 MB     05:58\nwarning: \/var\/cache\/dnf\/docker-ce-stable-091d8a9c23201250\/packages\/containerd.io-1.2.0-3.el7.x86_64.rpm: Header V4 RSA\/SHA512 Signature, key ID 621e9f35: NOKEY\nDocker CE Stable - x86_64                       1.5 kB\/s | 1.6 kB     00:01\nImporting GPG key 0x621E9F35:\n Userid     : \"Docker Release (CE rpm) &lt;docker@docker.com>\"\n Fingerprint: 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35\n From       : https:\/\/download.docker.com\/linux\/centos\/gpg\nKey imported successfully\nRunning transaction check\nTransaction check succeeded.\nRunning transaction test\nTransaction test succeeded.\nRunning transaction\n  Preparing        :                                                        1\/1\n  Installing       : docker-ce-cli-1:19.03.5-3.el7.x86_64                  1\/11\n  Running scriptlet: docker-ce-cli-1:19.03.5-3.el7.x86_64                  1\/11\n  Installing       : containerd.io-1.2.0-3.el7.x86_64                      2\/11\n  Running scriptlet: containerd.io-1.2.0-3.el7.x86_64                      2\/11\n  Installing       : python3-setools-4.2.0-2.el8.x86_64                    3\/11\n  Installing       : python3-libsemanage-2.8-5.el8.x86_64                  4\/11\n  Installing       : python3-audit-3.0-0.10.20180831git0047a6c.el8.x86_    5\/11\n  Running scriptlet: libcgroup-0.41-19.el8.x86_64                          6\/11\n  Installing       : libcgroup-0.41-19.el8.x86_64                          6\/11\n  Running scriptlet: libcgroup-0.41-19.el8.x86_64                          6\/11\n  Installing       : checkpolicy-2.8-2.el8.x86_64                          7\/11\n  Installing       : python3-policycoreutils-2.8-16.1.el8.noarch           8\/11\n  Installing       : policycoreutils-python-utils-2.8-16.1.el8.noarch      9\/11\n  Installing       : container-selinux-2:2.94-1.git1e99f1d.module_el8.0   10\/11\n  Running scriptlet: container-selinux-2:2.94-1.git1e99f1d.module_el8.0   10\/11\n  Running scriptlet: docker-ce-3:18.09.1-3.el7.x86_64                     11\/11\n  Installing       : docker-ce-3:18.09.1-3.el7.x86_64                     11\/11\n  Running scriptlet: docker-ce-3:18.09.1-3.el7.x86_64                     11\/11\n  Verifying        : container-selinux-2:2.94-1.git1e99f1d.module_el8.0    1\/11\n  Verifying        : checkpolicy-2.8-2.el8.x86_64                          2\/11\n  Verifying        : libcgroup-0.41-19.el8.x86_64                          3\/11\n  Verifying        : policycoreutils-python-utils-2.8-16.1.el8.noarch      4\/11\n  Verifying        : python3-audit-3.0-0.10.20180831git0047a6c.el8.x86_    5\/11\n  Verifying        : python3-libsemanage-2.8-5.el8.x86_64                  6\/11\n  Verifying        : python3-policycoreutils-2.8-16.1.el8.noarch           7\/11\n  Verifying        : python3-setools-4.2.0-2.el8.x86_64                    8\/11\n  Verifying        : containerd.io-1.2.0-3.el7.x86_64                      9\/11\n  Verifying        : docker-ce-3:18.09.1-3.el7.x86_64                     10\/11\n  Verifying        : docker-ce-cli-1:19.03.5-3.el7.x86_64                 11\/11\n\nInstalled:\n  docker-ce-3:18.09.1-3.el7.x86_64\n  container-selinux-2:2.94-1.git1e99f1d.module_el8.0.0+58+91b614e7.noarch\n  checkpolicy-2.8-2.el8.x86_64\n  libcgroup-0.41-19.el8.x86_64\n  policycoreutils-python-utils-2.8-16.1.el8.noarch\n  python3-audit-3.0-0.10.20180831git0047a6c.el8.x86_64\n  python3-libsemanage-2.8-5.el8.x86_64\n  python3-policycoreutils-2.8-16.1.el8.noarch\n  python3-setools-4.2.0-2.el8.x86_64\n  containerd.io-1.2.0-3.el7.x86_64\n  docker-ce-cli-1:19.03.5-3.el7.x86_64\n\nSkipped:\n  docker-ce-3:19.03.5-3.el7.x86_64\n\nComplete!<\/code><\/pre>\n\n\n\n<p>Enable and start&nbsp;<strong>Docker<\/strong>&nbsp;service.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[root@docker-01 ~]# systemctl enable --now docker.service\nCreated symlink \/etc\/systemd\/system\/multi-user.target.wants\/docker.service \u00e2 \/usr\/lib\/systemd\/system\/docker.service.<\/code><\/pre>\n\n\n\n<p>Check status of&nbsp;<strong>Docker<\/strong>&nbsp;service.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[root@docker-01 ~]# systemctl status docker.service\n\u00e2 docker.service - Docker Application Container Engine\n   Loaded: loaded (\/usr\/lib\/systemd\/system\/docker.service; enabled; vendor pres>\n   Active: active (running) since Wed 2019-12-25 22:56:45 PKT; 30s ago\n     Docs: https:\/\/docs.docker.com\n Main PID: 3139 (dockerd)\n    Tasks: 17\n   Memory: 66.9M\n   CGroup: \/system.slice\/docker.service\n           \u00e2\u00e23139 \/usr\/bin\/dockerd -H fd:\/\/\n           \u00e2\u00e23148 containerd --config \/var\/run\/docker\/containerd\/containerd.tom>\n\nDec 25 22:56:43 docker-01.recipes.com dockerd[3139]: time=\"2019-12-25T22:56:43.>\nDec 25 22:56:43 docker-01.recipes.com dockerd[3139]: time=\"2019-12-25T22:56:43.>\nDec 25 22:56:43 docker-01.recipes.com dockerd[3139]: time=\"2019-12-25T22:56:43.>\nDec 25 22:56:43 docker-01.recipes.com dockerd[3139]: time=\"2019-12-25T22:56:43.>\nDec 25 22:56:44 docker-01.recipes.com dockerd[3139]: time=\"2019-12-25T22:56:44.>\nDec 25 22:56:44 docker-01.recipes.com dockerd[3139]: time=\"2019-12-25T22:56:44.>\nDec 25 22:56:45 docker-01.recipes.com dockerd[3139]: time=\"2019-12-25T22:56:45.>\nDec 25 22:56:45 docker-01.recipes.com dockerd[3139]: time=\"2019-12-25T22:56:45.>\nDec 25 22:56:45 docker-01.recipes.com dockerd[3139]: time=\"2019-12-25T22:56:45.>\nDec 25 22:56:45 docker-01.recipes.com systemd[1]: Started Docker Application Co><\/code><\/pre>\n\n\n\n<p>Check&nbsp;<strong>Docker<\/strong>&nbsp;version.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[root@docker-01 ~]# docker version\nClient: Docker Engine - Community\n Version:           19.03.5\n API version:       1.39 (downgraded from 1.40)\n Go version:        go1.12.12\n Git commit:        633a0ea\n Built:             Wed Nov 13 07:25:41 2019\n OS\/Arch:           linux\/amd64\n Experimental:      false\n\nServer: Docker Engine - Community\n Engine:\n  Version:          18.09.1\n  API version:      1.39 (minimum version 1.12)\n  Go version:       go1.10.6\n  Git commit:       4c52b90\n  Built:            Wed Jan  9 19:06:30 2019\n  OS\/Arch:          linux\/amd64\n  Experimental:     false<\/code><\/pre>\n\n\n\n<p><strong>Docker CE<\/strong>&nbsp;has been installed on CentOS 8.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Create a Container using Docker in CentOS 8:<\/h2>\n\n\n\n<p>Let&#8217;s put&nbsp;<strong>Docker<\/strong>&nbsp;into action by creating a simple container.<\/p>\n\n\n\n<p>For this purpose, we are using official image of&nbsp;<strong>Alpine Linux<\/strong>&nbsp;from&nbsp;<strong>Docker Hub<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[root@docker-01 ~]# docker search alpine --filter is-official=true\nNAME                DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED\nalpine              A minimal Docker image based on Alpine Linux\u00e2\u00a6   5945                [OK]<\/code><\/pre>\n\n\n\n<p>Pull&nbsp;<strong>Alpine Linux<\/strong>&nbsp;image from&nbsp;<strong>Docker Hub<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[root@docker-01 ~]# docker pull alpine\nUsing default tag: latest\nlatest: Pulling from library\/alpine\ne6b0cf9c0882: Pull complete\nDigest: sha256:2171658620155679240babee0a7714f6509fae66898db422ad803b951257db78\nStatus: Downloaded newer image for alpine:latest\ndocker.io\/library\/alpine:latest<\/code><\/pre>\n\n\n\n<p>List locally available&nbsp;<strong>docker<\/strong>&nbsp;images.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[root@docker-01 ~]# docker images\nREPOSITORY          TAG                 IMAGE ID            CREATED             SIZE\nalpine              latest              cc0abc535e36        23 hours ago        5.59MB<\/code><\/pre>\n\n\n\n<p>Create and run a container using&nbsp;<strong>Alpine Linux<\/strong>&nbsp;image.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[root@docker-01 ~]# docker run -it --rm alpine \/bin\/sh\n\/ # cat \/etc\/os-release\nNAME=\"Alpine Linux\"\nID=alpine\nVERSION_ID=3.11.2\nPRETTY_NAME=\"Alpine Linux v3.11\"\nHOME_URL=\"https:\/\/alpinelinux.org\/\"\nBUG_REPORT_URL=\"https:\/\/bugs.alpinelinux.org\/\"\n\/ # uname -a\nLinux c0089c037e24 4.18.0-80.11.2.el8_0.x86_64 #1 SMP Tue Sep 24 11:32:19 UTC 2019 x86_64 Linux\n\/ # exit<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Installing Docker-compose on CentOS 8:<\/h2>\n\n\n\n<p>Additionally, we are installing&nbsp;<strong>docker-compose<\/strong>&nbsp;on our CentOS 8 server, so we can create and run multiple containers as a single service.<\/p>\n\n\n\n<p>Download&nbsp;<strong>docker-compose<\/strong>&nbsp;package from&nbsp;<strong>GitHub<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[root@docker-01 ~]# curl -L https:\/\/github.com\/docker\/compose\/releases\/download\/1.25.1-rc1\/docker-compose-`uname -s`-`uname -m` -o \/usr\/local\/bin\/docker-compose\n  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\n                                 Dload  Upload   Total   Spent    Left  Speed\n100   617    0   617    0     0    546      0 --:--:--  0:00:01 --:--:--   546\n100 16.2M  100 16.2M    0     0   184k      0  0:01:29  0:01:29 --:--:--  276k<\/code><\/pre>\n\n\n\n<p>Grant execute permissions to&nbsp;<strong>docker-compose<\/strong>&nbsp;command.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[root@docker-01 ~]# chmod +x \/usr\/local\/bin\/docker-compose<\/code><\/pre>\n\n\n\n<p>Check&nbsp;<strong>docker-compose<\/strong>&nbsp;version.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>[root@docker-01 ~]# docker-compose version\ndocker-compose version 1.25.1-rc1, build d92e9bee\ndocker-py version: 4.1.0\nCPython version: 3.7.4\nOpenSSL version: OpenSSL 1.1.0l  10 Sep 2019<\/code><\/pre>\n\n\n\n<p>We have successfully&nbsp;<strong>installed Docker CE and Docker-Compose on CentOS 8<\/strong>. We have only explored the installation of Docker CE here<\/p>\n","protected":false},"excerpt":{"rendered":"\n<p>Docker&nbsp;is a set of&nbsp;Platform as a Service (PaaS)&nbsp;products that uses operating system level virtualizations to deliver software in the form of containers.&nbsp;Docker CE (Community Edition)&nbsp;is the strip down version of&nbsp;Docker EE (Enterprise Edition). Docker CE is free and open source and distributed under&nbsp;Apache License 2.0.<\/p>\n<p>In&nbsp;Red Hat Enterprise Linux (RHEL) 8&nbsp;\/&nbsp;CentOS 8, Support of&nbsp;Docker&nbsp;has [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[99],"tags":[],"_links":{"self":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/7939"}],"collection":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7939"}],"version-history":[{"count":1,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/7939\/revisions"}],"predecessor-version":[{"id":7940,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/7939\/revisions\/7940"}],"wp:attachment":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7939"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7939"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7939"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}