{"id":24652,"date":"2023-10-10T05:00:00","date_gmt":"2023-10-10T03:00:00","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=24652"},"modified":"2024-07-22T14:29:36","modified_gmt":"2024-07-22T12:29:36","slug":"windows-subsystem-for-linux-wsl-2-part-3-docker-installation-and-configuration","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/en\/windows-subsystem-for-linux-wsl-2-part-3-docker-installation-and-configuration\/","title":{"rendered":"Windows Subsystem for Linux (WSL 2). Part 3: Docker installation and configuration"},"content":{"rendered":"\n<p>In previous articles (<a href=\"https:\/\/sii.pl\/blog\/en\/windows-subsystem-for-linux-wsl-2-part-1-installation-and-configuration\/?category=hard-development&amp;tag=linux-2,tools,windows-2\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">Part 1.<\/a>, <a href=\"https:\/\/sii.pl\/blog\/en\/windows-subsystem-for-linux-wsl-2-part-2-dev-tools-configuration\/?category=hard-development&amp;tag=linux-2,tools,windows-2\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">Part 2.)<\/a> I showed how to configure WSL itself and dev tools to work alongside. In this one, I\u2019ll present how to install and configure <em>Docker<\/em> (with <em>Docker Compose<\/em>) using WSL Linux distribution.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Installation<\/strong><\/h2>\n\n\n\n<p>The installation process of Docker is well described on the documentation page. There are a few installation methods, but I\u2019ll focus on the one using an <a href=\"https:\/\/docs.docker.com\/engine\/install\/ubuntu\/#install-using-the-repository\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" ><em>apt<\/em> repository<\/a>.<\/p>\n\n\n\n<p>Execute steps from <em>Set up the repository<\/em> and then from <em>Install Docker Engine<\/em> paragraphs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Post-install configuration<\/strong><\/h2>\n\n\n\n<p>In this part I\u2019ll describe how to configure Docker to use it as a non-privileged user and start the daemon automatically on the Linux OS startup.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Installation verification<\/strong><\/h3>\n\n\n\n<p>When you try to execute the last step of the installation instruction in order to verify if Docker was installed successfully:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo docker run hello-world<\/pre>\n\n\n\n<p>You\u2019ll encounter the following failure message:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker: Cannot connect to the Docker daemon at unix:\/\/\/var\/run\/docker.sock. Is the docker daemon running?.\r\nSee 'docker run --help'.\r<\/pre>\n\n\n\n<p>It\u2019s because Docker daemon is not running. You can verify it, by executing:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">service docker status<\/pre>\n\n\n\n<p>The output should be as follows:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">* Docker is not running<\/pre>\n\n\n\n<p>You can start the Docker daemon by executing:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo service docker start<\/pre>\n\n\n\n<p>Having the Docker daemon started, it should be possible to run <em>hello-world<\/em> example.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Using Docker as a non-privileged user<\/strong><\/h3>\n\n\n\n<p>By default, <em>sudo<\/em> must be used to use a <em>docker<\/em> command. It\u2019s because <em>docker<\/em> user group has been created, but it contains no users.<\/p>\n\n\n\n<p>Execute the following command to add the current user to the <em>docker<\/em> user group:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo usermod -aG docker $USER<\/pre>\n\n\n\n<p>Now exit the WSL Linux distro and let it restart \u2013 wait until status will be <em>stopped<\/em> by using:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">wsl -l -v<\/pre>\n\n\n\n<p>command in <em>PowerShell<\/em>. If you don\u2019t want to wait for Linux stopping automatically (it should be about 30 s.), you can stop it manually:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">wsl --shutdown<\/pre>\n\n\n\n<p>Remember, that Docker is not configured yet to start automatically, so after logging in to your WSL Linux again, execute first:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo service docker start<\/pre>\n\n\n\n<p>And after that try to run <em>hello-world<\/em> example, but now \u2013 without using <em>sudo<\/em>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker run hello-world<\/pre>\n\n\n\n<p>If you encountered the following error:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">WARNING: Error loading config file: \/home\/user\/.docker\/config.json -\r\nstat \/home\/user\/.docker\/config.json: permission denied\r<\/pre>\n\n\n\n<p>Refer to the <a href=\"https:\/\/docs.docker.com\/engine\/install\/linux-postinstall\/#manage-docker-as-a-non-root-user\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >documentation<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Starting Docker daemon automatically<\/strong><\/h2>\n\n\n\n<p>So far, <em>Docker<\/em> has been installed and now it can be used without <em>sudo<\/em>, but it doesn\u2019t start automatically with the system.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>systemd<\/strong><\/h3>\n\n\n\n<p>Many modern Linux distributions use <em>systemd<\/em> to manage services. <em>Debian<\/em> and <em>Debian<\/em> based Linux distributions \u2013 like <em>Ubuntu<\/em> are no exception for that. However, in case of WSL, there\u2019s<br>a lightweight Linux (for example <em>Ubuntu<\/em>) distribution, that doesn\u2019t use <em>systemd<\/em> (at least by default,\u00a0as it\u2019s possible to configure it to use <em>systemd <\/em>from a certain Windows 10 and Windows 11 update).<\/p>\n\n\n\n<p>If the only reason to enable <em>systemd<\/em> in WSL Linux distribution is to start some services automatically, I would recommend not to do this that way. Check the interesting <a href=\"https:\/\/askubuntu.com\/questions\/1379425\/system-has-not-been-booted-with-systemd-as-init-system-pid-1-cant-operate\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >thread<\/a> explaining this topic further.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>WSL configuration<\/strong><\/h3>\n\n\n\n<p>Simple WSL configuration can be used for automatic service execution at the OS startup. The only thing to do is to edit the <em>\/etc\/wsl.conf<\/em> file as described in this <a href=\"https:\/\/superuser.com\/questions\/1343558\/how-to-make-wsl-run-services-at-startup\/1685207#1685207\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >thread<\/a> \u2013 the same that was edited in order not to generate <em>resolvConf<\/em> as described in the <a href=\"https:\/\/sii.pl\/blog\/en\/windows-subsystem-for-linux-wsl-2-part-1-installation-and-configuration\/?category=hard-development&amp;tag=linux-2,tools,windows-2\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">1st article of this series<\/a>.<\/p>\n\n\n\n<p>Open the mentioned file with the chosen editor and admin privileges, for example, using <em>nano<\/em>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo nano \/etc\/wsl.conf<\/pre>\n\n\n\n<p>Add the following lines and save the file:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[boot]\r\n  command=\"service docker start\"\r<\/pre>\n\n\n\n<p>In order to verify if new settings work properly, stop WSL Linux distro, and start it again. Check with the following command if Docker daemon is running:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">service docker status<\/pre>\n\n\n\n<p>The output should be as follows:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">* Docker is running<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Configure logging driver<\/strong><\/h3>\n\n\n\n<p>Last but not least, remember to configure Docker logging driver, for example as described <a href=\"https:\/\/docs.docker.com\/config\/containers\/logging\/local\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >here<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Running database example<\/strong><\/h2>\n\n\n\n<p>In this section I\u2019ll demonstrate how WSL can be used for running Docker containers. In this example MySQL database and that it is possible to easily work with such db from Windows host, the same way as it would have been installed natively on Windows.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Database configuration<\/strong><\/h3>\n\n\n\n<p>In order to run database, <em>docker compose<\/em> tool will be used. Let\u2019s begin with creating really simple compose file in the desired WSL Linux catalogue \u2013 for example the one as below (you can use <em>Visual Studio Code<\/em> for that \ud83d\ude09):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">version: \u201c3.8\u201d\r\nservices:\r\n  mysql-db:\r\n    image: mysql:8.0.32\r\n    restart: always\r\n    environment:\r\n      MYSQL_DATABASE: \u201cmysql-test-db\u201d\r\n      MYSQL_USER: \u201ctest-user\u201d\r\n      MYSQL_PASSWORD: \u201ctest-password\u201d\r\n      MYSQL_ROOT_PASSWORD: \u201croot-password\u201d\r\n    ports:\r\n      - \u201c3306:3306\u201d\r\n    volumes:\r\n      - mysql-db-volume:\/var\/lib\/mysql\r\nvolumes:\r\n  mysql-db-volume:\r<\/pre>\n\n\n\n<p>Save the file, and execute command to run the db:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">docker compose -f mysql-compose.yml up<\/pre>\n\n\n\n<p>mysql-compose.yml is a docker-compose file name \u2013 change it regarding to your needs.<\/p>\n\n\n\n<p><em>MySQL<\/em> database should be up and running now, and be available to connect on port <em>3306<\/em>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Connect to the database from Windows<\/strong><\/h3>\n\n\n\n<p>Having database up and running, it\u2019s time to establish a connection from Windows host.<br>For that purpose, I\u2019ll use application called <em>DBeaver CE<\/em>. It\u2019s free universal tool, that can be used to connect and operate on different vendors databases, including the most popular, like <em>MySQL<\/em>, <em>PostgreSQL<\/em>, <em>MariaDB<\/em>, <em>Microsoft SQL Server<\/em>, etc. as well as to not relational dbs.<\/p>\n\n\n\n<p>Configuration is straightforward \u2013 just enter the data configured in docker compose file, for this example it would be:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Server Host: localhost\r\nPort: 3306\r\nDatabase: mysql-test-db\r\nUsername: test-user\r\nPassword: test-password\r<\/pre>\n\n\n\n<p>If you use <em>Dbeaver<\/em>, you may encounter a connection problem, like <code>Public Key Retrieval is not allowed<\/code>. In connection settings, <em>Driver properties<\/em> tab, under <em>User Properties<\/em> add those 2 properties with values, as described in this <a href=\"https:\/\/stackoverflow.com\/questions\/50379839\/connection-java-mysql-public-key-retrieval-is-not-allowed\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >thread<\/a>:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">useSSL: false\r\nallowPublicKeyRetrieval: true\r<\/pre>\n\n\n\n<p>That\u2019s all. MySQL db is running in Docker container under the WSL Linux, but it\u2019s possible to work with it from Windows host as it was installed there.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h2>\n\n\n\n<p>In this article I showed how to install and configure <em>Docker<\/em> to be used with WSL, as well as I presented on how it can be leveraged be example of using a database container.<\/p>\n\n\n\n<p>This was the last part of three-series articles regarding the WSL configuration and usage. I believe, that I managed to show at least the most important aspects of WSL \u2013 how it can be configured and used in a daily development work.<\/p>\n\n\n\n<p>There\u2019s no doubt, this is an interesting tool that may be helpful \u2013 especially when working with <em>Docker<\/em> containers. <strong>Would I recommend it to everybody who use Windows?<\/strong> I think, I wouldn\u2019t. You must remember that this tool is still under development \u2013 though quite stable and mature, there\u2019re at least few problems to solve in terms of the configuration of some applications to work with it properly.<\/p>\n\n\n\n<p>If I had to sum up \u2013 <strong>I would recommend it to all, who for some reason have any problems with working on Windows<\/strong> (for example previously used Linux for development, some tools don\u2019t work properly, etc.), and also for those who create multi-platform applications.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Sources<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/docs.docker.com\/engine\/install\/ubuntu\/#install-using-the-repository\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >Docker docs \u2013 Install using the Apt repository<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.docker.com\/engine\/install\/linux-postinstall\/#manage-docker-as-a-non-root-user\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >Docker docs \u2013 Manage Docker as a non-root user<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/askubuntu.com\/questions\/1379425\/system-has-not-been-booted-with-systemd-as-init-system-pid-1-cant-operate\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >AskUbuntu \u00ad\u2013 System has not been booted with systemd as init system<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/siipoland-my.sharepoint.com\/personal\/dbaldyga_sii_pl\/Documents\/Blog\/autorzy%20i%20teksty\/Marcin%20Wr\u00f3bel\/part_3\/\u2022%09https:\/superuser.com\/questions\/1343558\/how-to-make-wsl-run-services-at-startup\/1685207#1685207\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >SuperUser \u2013 How to make WSL run services at startup<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.docker.com\/config\/containers\/logging\/local\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >Docker docs \u2013 Local File logging driver<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/stackoverflow.com\/questions\/50379839\/connection-java-mysql-public-key-retrieval-is-not-allowed\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\" rel=\"nofollow\" >Stack Overflow \u2013 Connection Java \u2013 MySQL: Public Key Retrieval is not allowed<\/a><\/li>\n<\/ul>\n\n\n\n<p>***<\/p>\n\n\n\n<p>Other articles in the series can be found here:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/sii.pl\/blog\/en\/windows-subsystem-for-linux-wsl-2-part-1-installation-and-configuration\/?category=hard-development&amp;tag=linux-2,tools,windows-2\" target=\"_blank\" aria-label=\"Windows Subsystem for Linux (WSL 2). Part 1: Installation and configuration (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">Windows Subsystem for Linux (WSL 2). Part 1: Installation and configuration<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sii.pl\/blog\/en\/windows-subsystem-for-linux-wsl-2-part-2-dev-tools-configuration\/?category=hard-development&amp;tag=linux-2,tools,windows-2\" target=\"_blank\" aria-label=\"Windows Subsystem for Linux (WSL 2). Part 2: Dev tools configuration (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">Windows Subsystem for Linux (WSL 2). Part 2: Dev tools configuration<\/a><\/li>\n<\/ul>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;24652&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;4&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;5&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;11&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;5\\\/5 ( votes: 4)&quot;,&quot;size&quot;:&quot;18&quot;,&quot;title&quot;:&quot;Windows Subsystem for Linux (WSL 2). Part 3: Docker installation and configuration&quot;,&quot;width&quot;:&quot;139.5&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} ( {votes}: {count})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 139.5px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 14.4px;\">\n            5\/5 ( votes: 4)    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>In previous articles (Part 1., Part 2.) I showed how to configure WSL itself and dev tools to work alongside. &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/en\/windows-subsystem-for-linux-wsl-2-part-3-docker-installation-and-configuration\/\">Continued<\/a><\/p>\n","protected":false},"author":538,"featured_media":24661,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1320],"tags":[2622,1746,1745,1590],"class_list":["post-24652","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hard-development","tag-digital-en","tag-linux-2","tag-windows-2","tag-tools"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/10\/Windows-Subsystem-for-Linux-WSL-2.-Part-1-Installation-and-configuration.jpg","category_names":["Hard development"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/en\/wp-json\/wp\/v2\/posts\/24652"}],"collection":[{"href":"https:\/\/sii.pl\/blog\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sii.pl\/blog\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/en\/wp-json\/wp\/v2\/users\/538"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/en\/wp-json\/wp\/v2\/comments?post=24652"}],"version-history":[{"count":2,"href":"https:\/\/sii.pl\/blog\/en\/wp-json\/wp\/v2\/posts\/24652\/revisions"}],"predecessor-version":[{"id":24664,"href":"https:\/\/sii.pl\/blog\/en\/wp-json\/wp\/v2\/posts\/24652\/revisions\/24664"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/en\/wp-json\/wp\/v2\/media\/24661"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/en\/wp-json\/wp\/v2\/media?parent=24652"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/en\/wp-json\/wp\/v2\/categories?post=24652"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/en\/wp-json\/wp\/v2\/tags?post=24652"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}