{"id":780,"date":"2023-09-23T04:06:08","date_gmt":"2023-09-23T01:06:08","guid":{"rendered":"https:\/\/melic.com\/wp1\/?p=780"},"modified":"2023-09-23T04:06:08","modified_gmt":"2023-09-23T01:06:08","slug":"docker-nedir","status":"publish","type":"post","link":"https:\/\/melic.com\/wp1\/docker-nedir\/","title":{"rendered":"Docker Nedir?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Docker, a\u00e7\u0131k kaynak bir Container motorudur. Daha iyi anlamak i\u00e7in mimarisini ve bile\u015fenlerini inceleyelim:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"234\" src=\"https:\/\/melic.com\/wp1\/wp-content\/uploads\/2023\/09\/image.png\" alt=\"Docker Mimaisi\" class=\"wp-image-814\" srcset=\"https:\/\/melic.com\/wp1\/wp-content\/uploads\/2023\/09\/image.png 640w, https:\/\/melic.com\/wp1\/wp-content\/uploads\/2023\/09\/image-200x73.png 200w, https:\/\/melic.com\/wp1\/wp-content\/uploads\/2023\/09\/image-460x168.png 460w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Docker Client<\/strong>, docker komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131z komut sat\u0131r\u0131 aray\u00fcz\u00fc arac\u0131d\u0131r. Gelen talepleri Docker API \u00fczerinden Docker Daemon&#8217; a iletir.<\/li>\n\n\n\n<li><strong>Docker Host<\/strong>&nbsp;\u00fczerinde&nbsp;<strong>Docker Daemon<\/strong>&nbsp;\u00e7al\u0131\u015fmaktad\u0131r.<\/li>\n\n\n\n<li><strong>Docker Daemon<\/strong>, API \u00fczerinden gelen istekleri dinlemekte ve ger\u00e7ekle\u015ftirmektedir. T\u00fcm container s\u00fcre\u00e7leri burada y\u00f6netilir.<\/li>\n\n\n\n<li><strong>Docker Registry<\/strong>&nbsp;ise a\u00e7\u0131k kaynakl\u0131 olarak image&#8217; lar\u0131n\u0131z\u0131 y\u00fckleyebilece\u011finiz ve&nbsp;<strong>DockerHub<\/strong>&#8216; da payla\u015fabilece\u011finiz bir kay\u0131t defteri arac\u0131d\u0131r. Docker i\u00e7erisinde \u00e7al\u0131\u015ft\u0131rabilece\u011finiz image&#8217; lar burada saklan\u0131r. DockerHub, docker taraf\u0131ndan hizmet veren herkesin kullan\u0131m\u0131na a\u00e7\u0131k public bir kay\u0131t defteridir.<\/li>\n\n\n\n<li><strong>Docker Image<\/strong>, container olu\u015ftururken kulland\u0131\u011f\u0131m\u0131z template&#8217;lerdir. \u00c7al\u0131\u015facak uygulaman\u0131z\u0131n ve uygulaman\u0131z\u0131n altyap\u0131s\u0131nda \u00e7al\u0131\u015fan gerekli i\u015fletim sistemi k\u00fct\u00fcphanelerinin bulundu\u011fu bir yap\u0131d\u0131r. Container&#8217; lar\u0131n yeteneklerini ve ihtia\u00e7lar\u0131n\u0131 tan\u0131mlayan metadata verilerini de saklamaktad\u0131r.<\/li>\n\n\n\n<li><strong>Docker Container<\/strong>, docker image&#8217; lardan olu\u015fturulan uygulamalard\u0131r. Docker Image&#8217;\u0131n \u00e7al\u0131\u015fan bir \u00f6rne\u011fidir. Uygulamay\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in gereken t\u00fcm paketleri containerlar b\u00fcnyesinde tutmaktad\u0131r. Image bir \u015fablondur ve containerlar da bu \u015fablonun \u00e7al\u0131\u015fan bir kopyas\u0131d\u0131r.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Container nedir?<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Container&#8217;lar i\u00e7lerinde uygulamay\u0131, uygulaman\u0131n \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayan sistem ara\u00e7lar\u0131n\u0131 (dependencies) ve sistem k\u00fct\u00fcphanelerini (libraries) bar\u0131nd\u0131r\u0131r. Bir &#8220;Container Engine&#8221; olan Docker ise sanal makine g\u00f6revi g\u00f6ren ama sanal makine olmayan bu container&#8217;lar\u0131 yaratmay\u0131 sa\u011flar. Container&#8217;lar sanal makinelere benzetilebilir fakat bilinmelidir ki Container&#8217;lar sanal makineler kadar kaynak t\u00fcketmezler. \u00c7\u00fcnk\u00fc t\u00fcm i\u015fletim sistemi gereksinimlerini, \u00fczerinde kurulu olduklar\u0131 i\u015fletim sistemi ile ortak kullan\u0131rlar. Container&#8217;lar\u0131n boyutlar\u0131 da \u00e7ok k\u00fc\u00e7\u00fckt\u00fcr (ortalama 100MB). Sistem y\u00f6netimini olduk\u00e7a kolay bir hale getirirken, kaynak israf\u0131n\u0131 da dramatik bir \u015fekilde azaltan Container teknolojisi, sekt\u00f6rde olduk\u00e7a \u00f6nemli bir yer edinmi\u015ftir.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Temel Komutlar<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Bu b\u00f6l\u00fcmde temel Docker komutlar\u0131 \u00fczerinde duraca\u011f\u0131z.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>docker<\/code>&nbsp;komutunu kullanarak docker komutlar\u0131na dair se\u00e7enekleri, y\u00f6entim komutlar\u0131n\u0131 ve di\u011fer t\u00fcm komutlar\u0131 a\u00e7\u0131klamalar\u0131yla birlikte g\u00f6r\u00fcnt\u00fcleyebilirsiniz:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0130lk Komut:&nbsp;<code><strong>docker<\/strong><\/code><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt; Usage:  docker &#91;OPTIONS] COMMAND\n\nA self-sufficient runtime <strong>for<\/strong> containers\n\nOptions:\n      --config string      Location of client config files (default\n                           \"\/root\/.docker\")\n  -c, --context string     Name of the context to use to connect to the\n                           daemon (overrides DOCKER_HOST env var and\n                           default context set with \"docker context use\")\n  -D, --debug              Enable debug mode<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0130kinci Komut:&nbsp;<code><strong>docker images --help<\/strong><\/code><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>root@server:~# \n&gt;&gt; Usage:  docker images &#91;OPTIONS] &#91;REPOSITORY&#91;:TAG]]\n\nList images\n\nOptions:\n  -a, --all             Show all images (default hides intermediate images)\n      --digests         Show digests\n  -f, --filter filter   Filter output based on conditions provided\n      --format string   Pretty-print images using a Go template\n      --no-trunc        Don't truncate output\n  -q, --quiet           Only show image IDs\n\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00dc\u00e7\u00fcnc\u00fc Komut:&nbsp;<code><strong>docker version<\/strong><\/code><br>docker client ve docker engine hakk\u0131nda detayl\u0131 bilgileri \u00f6\u011frenebilirsiniz. Ayn\u0131 zamanda docker client&#8217;\u0131n docker daemon ile sorunsuz bir \u015fekilde ileti\u015fime ge\u00e7ti\u011fini test etmi\u015f olacaks\u0131n\u0131z:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># docker version\n&gt;&gt; Client:\n Cloud integration: v1.0.22\n Version:           20.10.12\n API version:       1.41\n Go version:        go1.16.12\n Git commit:        e91ed57\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>D\u00f6rd\u00fcnc\u00fc Komut:&nbsp;<code><strong>docker info<\/strong><\/code><br>komutu ile docker yap\u0131n\u0131z hakk\u0131nda detayl\u0131 bilgilere sahip olabilirsiniz. Docker \u00fczerinde olu\u015fturdu\u011funuz container bilgileri (running, paused, stopped), image bilgileri, storage driver bilgileri, sistem \u00fczerinde swarm&#8217;\u0131 aktif edip etmedi\u011finize dair bilgiler gibi genel bilgileri elde edebilirsiniz:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># docker info\n&gt;&gt; Client:\n Context:    default\n Debug Mode: false\n Plugins:\n  buildx: Docker Buildx (Docker Inc., v0.7.1)\n  compose: Docker Compose (Docker Inc., v2.2.3)\n  scan: Docker Scan (Docker Inc., v0.17.0)\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Be\u015finci Komut:<strong>&nbsp;<code>docker -D info<\/code><\/strong><br>komutu ile docker \u00fczerinde debug modu aktif hale getirebilirsiniz:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># docker -D info\n&gt;&gt; Client:\n Context:    default\n Debug Mode: true\n Plugins:\n  buildx: Docker Buildx (Docker Inc., v0.7.1)\n  compose: Docker Compose (Docker Inc., v2.2.3)\n  scan: Docker Scan (Docker Inc., v0.17.0)\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Alt\u0131nc\u0131 Komut:&nbsp;<code><strong>docker container run hello-world<\/strong><\/code><br>komutu&nbsp;<em>hello-world<\/em>&nbsp;isimli image ile yeni container olu\u015fturur ve ba\u015flat\u0131r. Docker Daemon, Image&#8217; \u0131n localde olup olmad\u0131\u011f\u0131n\u0131 kontrol eder. Image localde yer al\u0131yorsa bu image&#8217;\u0131 kullanarak yeni bir container olu\u015fturur. E\u011fer image lokalde yoksa varsay\u0131lan kay\u0131t defteri olan hub.docker.com adresinde&nbsp;<em>hello-world<\/em>&nbsp;isimli image&#8217;\u0131 sorgular. Burada image yer al\u0131yorsa image&#8217;\u0131 locale indirir ve bu image&#8217;\u0131 baz alarak yeni bir container olu\u015fturur ve \u00e7al\u0131\u015ft\u0131r\u0131r. B\u00f6ylece servis aya\u011fa kalkm\u0131\u015f olur:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># docker container run hello-world\n&gt;&gt; Hello from Docker!\nThis message shows that your installation appears to be working correctly.\n\nTo generate this message, Docker took the following steps:\n 1. The Docker client contacted the Docker daemon.\n 2. The Docker daemon pulled the \"hello-world\" image from the Docker Hub.\n    (amd64)\n 3. The Docker daemon created a new container from that image which runs the\n    executable that produces the output you are currently reading.\n 4. The Docker daemon streamed that output to the Docker client, which sent it\n    to your terminal.\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Yedinci Komut:&nbsp;<code><strong>docker search &lt;imageName&gt;<\/strong><\/code><br>komutu ile istedi\u011finiz image&#8217;\u0131 hub.docker.com adresinde arayabilir ve detayl\u0131 bir liste elde edebilirsiniz:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># docker search centos\n&gt;&gt; NAME                                         DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED\n   centos                                       The official build of CentOS.                   7190      &#91;OK]\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sekizinci Komut:&nbsp;<strong><code>docker pull &lt;imageName&gt;<\/code>&nbsp;<\/strong><br>komutu ile belirtilen image&#8217;\u0131, hub.docker.com adresinden sisteminize \u00e7ekebilirsiniz: <br>\u00d6rne\u011fin httpd image&#8217;\u0131 i\u00e7in:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># docker pull httpd\n&gt;&gt;Using default tag: latest\nlatest: Pulling from library\/httpd\n42c077c10790: Pull complete\n77a357ba66a8: Pull complete\ne9e2f87fc2ce: Pull complete\n0b3c9bceb738: Pull complete\nde91965861a5: Pull complete\nDigest: sha256:f899e432292e4ee92772d35e43b2e3dcf30042b1c6385d33f00a9300c69ee729\nStatus: Downloaded newer image <strong>for<\/strong> httpd:latest\ndocker.io\/library\/httpd:latest\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dokuzuncu komut:&nbsp;<code><strong>docker images<\/strong><\/code><br>komutuyla sistemdeki image&#8217;lar\u0131 listeleyebilirsiniz:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># docker images\n&gt;&gt;REPOSITORY                     TAG       IMAGE ID       CREATED        SIZE\nhttpd                          latest    b260a49eebf9    a seconds ago     145MB\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Onuncu komut:&nbsp;<code><strong>docker container run --help<\/strong><\/code><br>komutu ile container olu\u015ftururken kullanabilece\u011finiz parametrelere dair bilgi edinebilirsiniz:<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># docker container run --help\n&gt;&gt; Usage:  docker container run &#91;OPTIONS] IMAGE &#91;COMMAND] &#91;ARG...]\n\nRun a command <strong>in<\/strong> a new container\n\nOptions:\n      --add-host list                  Add a custom host-to-IP mapping\n                                       (host:ip)\n  -a, --attach list                    Attach to STDIN, STDOUT or STDERR\n      --blkio-weight uint16            Block IO (relative weight),\n                                       between 10 and 1000, or 0 to\n                                       disable (default 0)\n      --blkio-weight-device list       Block IO weight (relative device\n                                       weight) (default &#91;])\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Docker&#8217;da container \u00fczerinde yapaca\u011f\u0131m\u0131z i\u015flemlere ge\u00e7meden \u00f6nce, \u00f6nemli bir ka\u00e7 komuta bakal\u0131m. \u00d6ncelikle&nbsp;<code><strong>docker container run<\/strong><\/code>&nbsp;komutu,&nbsp;<code><strong>docker container create<\/strong><\/code>&nbsp;ve&nbsp;<code><strong>docker container start<\/strong><\/code>&nbsp;komutunun birle\u015fimidir.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Her image&#8217;da, o image&#8217;dan bir container create etti\u011fimiz zaman default \u00e7al\u0131\u015fmas\u0131 i\u00e7in ayarlanm\u0131\u015f bir uygulama vard\u0131r. Container, bu uygulama \u00e7al\u0131\u015ft\u0131\u011f\u0131 s\u00fcrece ayakta kal\u0131r. Uygulama \u00e7al\u0131\u015fmay\u0131 b\u0131rakt\u0131\u011f\u0131nda container da kapat\u0131l\u0131r.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Peki image&#8217;\u0131n i\u00e7inde sadece tek bir uygulama m\u0131 var? Hay\u0131r bir Docker image&#8217;\u0131n\u0131n i\u00e7inde birden fazla uygulama olabilir. Sadece tek bir uygulama i\u00e7ermelidir gibi bir kural yok. Fakat Docker, container start edildi\u011finde default \u00e7al\u0131\u015fmas\u0131 i\u00e7in yaln\u0131z tek bir uygulaman\u0131n ayarlanmas\u0131na izin verir. Bunun hangi uygulama olaca\u011f\u0131n\u0131 container yarat\u0131l\u0131rken belirtebiliriz.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code><strong>docker container run -d -p 80:80 httpd<\/strong><\/code>&nbsp;komutunu \u00e7al\u0131\u015ft\u0131r\u0131rsak, httpd registry&#8217;sindeki default uygulamay\u0131 &#8220;80:80&#8221; portundan \u00e7a\u011f\u0131r\u0131r\u0131z. &#8220;-d&#8221; komutu sayesinde container&#8217;\u0131 detach ederiz yani arkaplanda \u00e7al\u0131\u015ft\u0131r\u0131r\u0131z. Yani loglar\u0131n\u0131\/\u00e7\u0131kt\u0131lar\u0131n\u0131 kendi shell&#8217;imizde g\u00f6rmeyiz ama container arkada \u00e7al\u0131\u015fmaya devam eder:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@server:~# docker container run -d -p 80:80 httpd\n&gt;&gt; \n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi herhangi bir \u00e7\u0131kt\u0131 al\u0131nmad\u0131 fakat container&#8217;\u0131n arkaplanda \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 biliyoruz. O halde \u00e7al\u0131\u015fan\/\u00e7al\u0131\u015fmayan t\u00fcm container&#8217;lar\u0131m\u0131z\u0131 g\u00f6rmek i\u00e7in&nbsp;<br><code><strong>docker container ls -a<\/strong><\/code>&nbsp;veya&nbsp;<br><strong><code>docker ps -a<\/code>&nbsp;<\/strong><br>komutunu \u00e7al\u0131\u015ft\u0131ral\u0131m. Bu iki komut da ayn\u0131 g\u00f6revi g\u00f6r\u00fcr:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># docker container ls -a\n&gt;&gt; CONTAINER ID   IMAGE     COMMAND   CREATED          STATUS                       PORTS     NAMES\n   940d1da952e5   httpd     \"httpd-foreground\"   5 seconds ago   Up 4 seconds   0.0.0.0:80-&gt;80\/tcp   musing_ardinghelli\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code># docker ps -a\n&gt;&gt; CONTAINER ID   IMAGE     COMMAND   CREATED          STATUS                       PORTS     NAMES\n   940d1da952e5   httpd     \"httpd-foreground\"   About a minute ago   Up About a minute   0.0.0.0:80-&gt;80\/tcp   musing_ardinghelli\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Container&#8217;lar\u0131 silmek i\u00e7in ise&nbsp;<code><strong>docker container rm<\/strong><\/code><strong>&nbsp;<\/strong>diyip container&#8217;lar\u0131n ID&#8217;lerinin ilk 3-digit&#8217;ini girebiliriz. Bu komut \u00e7al\u0131\u015fan container&#8217;lar\u0131 silemez. <br>\u00c7al\u0131\u015fan bir container&#8217;\u0131 silmek i\u00e7in&nbsp;<code><strong>docker container rm -f ilk3Digit<\/strong><\/code>&nbsp;komutunu kullanabiliriz.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># docker container rm 940\n&gt;&gt; Error response from daemon: You cannot remove a running container 940d1da952e5d3ae548786286f3aa4f0cc38df67db867194b1fd1be1b3b882d3. Stop the container before attempting removal or force remove\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code># docker container rm -f 940\n&gt;&gt; 940\n\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Bu komutlar\u0131n ard\u0131ndan container listeleme yani&nbsp;<code><strong>docker container ls -a<\/strong><\/code>&nbsp;komutunu \u00e7al\u0131\u015ft\u0131ral\u0131m ve ayakta container olmad\u0131\u011f\u0131n\u0131 g\u00f6relim:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root@server:~# docker container ls -a \n&gt;&gt; CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Docker, a\u00e7\u0131k kaynak bir Container motorudur. Daha iyi anlamak i\u00e7in mimarisini ve bile\u015fenlerini inceleyelim: Docker Client, docker komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131z komut sat\u0131r\u0131 aray\u00fcz\u00fc arac\u0131d\u0131r. Gelen talepleri Docker API \u00fczerinden Docker Daemon&#8217; a iletir. Docker Host&nbsp;\u00fczerinde&nbsp;Docker Daemon&nbsp;\u00e7al\u0131\u015fmaktad\u0131r. Docker Daemon, API \u00fczerinden gelen istekleri dinlemekte ve ger\u00e7ekle\u015ftirmektedir. T\u00fcm container s\u00fcre\u00e7leri burada y\u00f6netilir. Docker&#8230;<\/p>\n","protected":false},"author":1,"featured_media":812,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[384,1],"tags":[385,14,67],"class_list":["post-780","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-docker","category-genel","tag-docker","tag-linux","tag-programlama"],"_links":{"self":[{"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/posts\/780","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/comments?post=780"}],"version-history":[{"count":3,"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/posts\/780\/revisions"}],"predecessor-version":[{"id":815,"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/posts\/780\/revisions\/815"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/media\/812"}],"wp:attachment":[{"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/media?parent=780"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/categories?post=780"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/melic.com\/wp1\/wp-json\/wp\/v2\/tags?post=780"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}