{"id":2329,"date":"2021-04-05T08:00:00","date_gmt":"2021-04-05T05:00:00","guid":{"rendered":"https:\/\/www.dataplatform.gr\/?p=2329"},"modified":"2025-01-15T14:35:33","modified_gmt":"2025-01-15T11:35:33","slug":"egkatastasi-sql-server-se-linux-meso-docker","status":"publish","type":"post","link":"https:\/\/www.dataplatform.gr\/en\/egkatastasi-sql-server-se-linux-meso-docker\/","title":{"rendered":"How to install SQL Server on Linux via Docker"},"content":{"rendered":"<p>In <a href=\"https:\/\/www.dataplatform.gr\/en\/pos-kanoyme-egkatastasi-sql-server-se-linux\/\" target=\"_blank\" rel=\"noreferrer noopener\">previous <\/a><a href=\"https:\/\/www.dataplatform.gr\/en\/pos-kanoyme-egkatastasi-sql-server-se-linux\/\" target=\"_blank\" rel=\"noreferrer noopener\">article<\/a> we had seen the installation <strong>SQL Server 2019<\/strong> in <strong>Red Hat Enterprise Linux<\/strong>. In this article we will see how to install <strong> SQL Server 2017 <\/strong>again on RHEL but <strong>with only 1 core and<\/strong> <strong>1GB Ram<\/strong> with use <strong>Docker containers<\/strong> in <strong>Ubuntu<\/strong>.<\/p>\n\n\n\n<p>The reason I used his solution <strong>Docker containers<\/strong> it was because i had to find an easy way around it <strong>limit <\/strong>of 2GB RAM to create and start SQL Server instance.<\/p>\n\n\n\n<p>Otherwise, during the installation I got the message:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>\"sqlservr: This program requires a machine with at least 2000 megabytes of memory.\"<\/code><\/pre>\n\n\n\n<p>Because first things first the first thing we need to do is open the SQL Server door to <strong>firewall<\/strong>.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">sudo firewall-cmd --zone=public --add-port=1433\/tcp --permanent\nsudo firewall-cmd --reload<\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Bypass system specs<\/h2>\n\n\n\n<p>The solution exists from one <a href=\"https:\/\/github.com\/justin2004\/mssql_server_tiny\" target=\"_blank\" rel=\"noreferrer noopener\">type<\/a> who had the same problem and made a Dockerfile ready to boot <strong>container<\/strong> with SQL Server instance in <strong>Docker<\/strong>.<\/p>\n\n\n\n<p>The trick was the use <strong>LD_PRELOAD <\/strong>which loads a bypass library that will be loaded first and when the SQL Server binary goes to run, the information will be bypassed with our own fake library that will have 2GB of RAM.<\/p>\n\n\n\n<p>The information we wanted to skip:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"628\" height=\"272\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/lsq-12.png\" alt=\"\" class=\"wp-image-2336\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/lsq-12.png 628w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/lsq-12-300x130.png 300w\" sizes=\"auto, (max-width: 628px) 100vw, 628px\" \/><\/figure>\n\n\n\n<p>The code for the library that needs to be compiled (wrapper.c):<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">int sysinfo(struct sysinfo *info){\n    \/\/ clear it\n    \/\/dlerror();\n    void *pt=NULL;\n    typedef int (*real_sysinfo)(struct sysinfo *info);\n    \/\/ we need the real sysinfo function address\n    pt = dlsym(RTLD_NEXT,\"sysinfo\");\n    \/\/printf(\"pt: %x\\n\", *(char *)pt);\n    \/\/ call the real sysinfo system call\n    int real_return_val=((real_sysinfo)pt)(info);\n    \/\/ but then modify its returned totalram field if necessary\n    \/\/ because sqlserver needs to believe it has \"2000 megabytes\"\n    \/\/ physical memory\n    if( info->totalram &lt; 1000l * 1000l * 1000l * 2l){ \/\/ 2000 megabytes\n        info->totalram = 1000l * 1000l * 1000l * 2l ;\n    }\n    return real_return_val;\n}<\/pre>\n\n\n\n<p>So when executing LD_PRELOAD=\/root\/wrapper.so \/opt\/mssql\/bin\/sqlservr SQL Server will start with the fake information we want.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Time to install Docker<\/h2>\n\n\n\n<p>But what is the <strong>Docker<\/strong>; It is a platform that allows us to run applications on <strong>containers <\/strong>which can be on any operating system regardless of what we have on our machine. So it allows us to download ready <strong>images <\/strong>and upload applications in a very fast time without any special extra configuration.<\/p>\n\n\n\n<p>For its installation <strong>Docker<\/strong>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">yum install -y docker-engine<\/pre>\n\n\n\n<p>To activate the service:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">sudo systemctl start docker\n\nsudo systemctl enable docker<\/pre>\n\n\n\n<p>To download git with the <strong>Dockerfile <\/strong>and wrapper it has created:<\/p>\n\n\n\n<p><em>*Obviously<\/em> <em>if we already have git installed, we don&#039;t need to install it again\u2026<\/em><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">sudo yum install git\n\nsudo git clone https:\/\/github.com\/justin2004\/mssql_server_tiny.git\n\ncd mssql_server_tiny<\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is Dockerfile<\/h2>\n\n\n\n<p>The <strong>Dockerfile <\/strong>is a text file that contains all the commands to build one <strong>image <\/strong>with automated commands during its creation and execution. <\/p>\n\n\n\n<p>Essentially as we see the Dockerfile in the <strong>FROM <\/strong>has them <strong>images <\/strong>** of the operating system to be downloaded, in our case <strong>Ubuntu with pre-installed<\/strong> <strong>SQL Server 2017<\/strong>, with <strong>RUN <\/strong>what it will perform when creating it, with the <strong>ADD <\/strong>file that will add from the folder we are in the image and with the <strong>CMD <\/strong>we define what will be executed in any container that uses this image during execution.<\/p>\n\n\n\n<p>The search for images that we can use in <strong>FROM<\/strong>, we do it on the website <a href=\"https:\/\/hub.docker.com\/search?q=&amp;type=image\">hub.docker.com<\/a> .<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>FROM debian:stretch-slim AS build0\nWORKDIR \/root\nRUN apt-get update &amp;&amp; apt-get install -y binutils gcc\nADD wrapper.c \/root\/\nRUN gcc -shared  -ldl -fPIC -o wrapper.so wrapper.c &amp;&amp; cp \/root\/wrapper.so \/root\/\nFROM mcr.microsoft.com\/mssql\/server:2017-latest-ubuntu\nCOPY --from=build0 \/root\/wrapper.so \/root\/\nCMD LD_PRELOAD=\/root\/wrapper.so \/opt\/mssql\/bin\/sqlservr -x<\/code><\/pre>\n\n\n\n<p><em>*The <strong>-x <\/strong>at the end I have set it so that the instance is raised (startup option) with as few metrics as possible to save memory.<\/em> If we didn&#039;t have a memory issue we would remove it.<\/p>\n\n\n\n<p><em>** The reason we use two images in the FROM and all the extra commands is to bypass SQL Server&#039;s resource limits, in case that didn&#039;t matter, only the FROM line would be needed mcr.microsoft.com\/mssql\/ server:2017-latest-ubuntu<\/em>.<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>FROM mcr.microsoft.com\/mssql\/server:2017-latest-ubuntu<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">How we make the image<\/h2>\n\n\n\n<p>When we have it ready <strong>Dockerfile <\/strong>we must do <strong>build <\/strong>the image with a name. As it is created, it will also download any image that we have not already downloaded.<\/p>\n\n\n\n<p>To build, run the following:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">sudo docker build -t mssql .\n\nsudo docker image ls\n<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"629\" height=\"482\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/lsq-13.png\" alt=\"\" class=\"wp-image-2338\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/lsq-13.png 629w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/lsq-13-300x230.png 300w\" sizes=\"auto, (max-width: 629px) 100vw, 629px\" \/><\/figure>\n\n\n\n<p>If we want to delete it:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">sudo docker image rm mssql<\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The creation of the container<\/h2>\n\n\n\n<p>Now we want to fix it <strong>container <\/strong>which will contain the instance of SQL Server as a separate entity within the operating system.<\/p>\n\n\n\n<p>The command is done with <strong>docker run <\/strong>and we can set all the parameters in its environment so that it does all the installation automatically. Also I have done <strong>mount <\/strong>a folder where I will put my database files and see them outside the container. At the end as mssql I declare its name <strong>image <\/strong>which I will also use as \u2013name the name the container will have.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">sudo docker run -d \\\n -e \"ACCEPT_EULA=Y\" \\\n -e 'MSSQL_PID=Developer' \\\n -p 1433:1433 \\\n -e 'SA_PASSWORD=password' \\\n --mount type=bind,source=$(pwd)\/dbfiles,target=\/dbfiles \\\n --name mssql \\\n --memory-swap -1 \\\n --restart unless-stopped \\\n mssql<\/pre>\n\n\n\n<p><em>*To save a few more resources we can also put the version <strong>Express<\/strong><\/em>.<\/p>\n\n\n\n<p><em>**Because RAM is limited with memory-swap -1 we can let the container use as much swap memory as the host machine has.<\/em><\/p>\n\n\n\n<p>With the following command we see that the container has been created:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">sudo docker container ls -a<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"707\" height=\"93\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/lsq-07.png\" alt=\"\" class=\"wp-image-2332\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/lsq-07.png 707w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/lsq-07-300x39.png 300w\" sizes=\"auto, (max-width: 707px) 100vw, 707px\" \/><\/figure>\n\n\n\n<p>If we want to delete the container:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">sudo docker stop mssql\n\nsudo docker rm \/mssql<\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Connect to the SQL Server container<\/h2>\n\n\n\n<p>Before we go to connect we need to see if the instance is up. To see the logs of the SQL Server container, simply execute the command:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">sudo docker logs mssql<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"629\" height=\"482\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/lsq-14.png\" alt=\"\" class=\"wp-image-2339\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/lsq-14.png 629w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/lsq-14-300x230.png 300w\" sizes=\"auto, (max-width: 629px) 100vw, 629px\" \/><\/figure>\n\n\n\n<p>If something goes wrong, we do <strong>stop \/ start<\/strong> the container:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">sudo docker stop mssql\nsudo docker start mssql<\/pre>\n\n\n\n<p>Once completed we can connect to <strong>sqlcmd <\/strong>directly from docker command:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">sudo docker exec -it mssql \/opt\/mssql-tools\/bin\/sqlcmd -S localhost -USA -Pkwdikos -e<\/pre>\n\n\n\n<p>Either connect to the container first and then call sqlcmd:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">sudo docker exec -it mssql bash\n\n\/opt\/mssql-tools\/bin\/sqlcmd -S localhost -Usa -Pkwdikos -e<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"597\" height=\"482\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/lsq-15.png\" alt=\"\" class=\"wp-image-2340\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/lsq-15.png 597w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/lsq-15-300x242.png 300w\" sizes=\"auto, (max-width: 597px) 100vw, 597px\" \/><\/figure>\n\n\n\n<p>Either from another computer, putting the hostname and its port will redirect to the container (the port was defined in the creation of the container above):<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"690\" height=\"625\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/lsq-17.png\" alt=\"\" class=\"wp-image-2360\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/lsq-17.png 690w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/lsq-17-300x272.png 300w\" sizes=\"auto, (max-width: 690px) 100vw, 690px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"740\" height=\"607\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/lsq-16.png\" alt=\"\" class=\"wp-image-2345\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/lsq-16.png 740w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/lsq-16-300x246.png 300w\" sizes=\"auto, (max-width: 740px) 100vw, 740px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Useful SQL Server commands in Docker<\/h2>\n\n\n\n<p>To do <strong>restart <\/strong>of SQL Server using docker we upload and download the entire container:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">sudo docker stop mssql\nsudo docker start mssql\n<\/pre>\n\n\n\n<p>To activate one <strong>traceflags <\/strong>using docker:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">sudo docker exec -it mssql \/opt\/mssql\/bin\/mssql-conf traceflag 7412 on\n<\/pre>\n\n\n\n<p>To enable SQL Server <strong>Agent <\/strong>using docker:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">sudo docker exec -it mssql \/opt\/mssql\/bin\/mssql-conf set sqlagent.ena                                               bled on\n<\/pre>\n\n\n\n<p>To change it <strong>collation<\/strong> in docker:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">docker exec -it mssql \/opt\/mssql\/bin\/mssql-conf set-collation\n<\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Closing<\/h2>\n\n\n\n<p>Of course, through all this effort, the time was not wasted, on the other hand, of course, with so many limitations in the memory of the resource pool, many queries do not run on the first try. As a first attempt I had tried to install SQL Server 2019 image instead of 2017 and things were much worse. But I think it&#039;s functional.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sources:<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/justin2004\/mssql_server_tiny\" target=\"_blank\">A Slightly Liberated Microsoft SQL Server Docker image<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.docker.com\/engine\/reference\/run\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker run reference<\/a><\/li>\n\n\n\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/linux\/quickstart-install-connect-red-hat?view=sql-server-ver15\" target=\"_blank\">Install SQL Server and create a database on Red Hat<\/a><\/li>\n\n\n\n<li><a rel=\"noreferrer noopener\" href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/linux\/sql-server-linux-configure-mssql-conf?view=sql-server-ver15\" target=\"_blank\">Configure SQL Server on Linux with the mssql-conf tool<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>In a previous article we saw the installation of SQL Server 2019 on Red Hat Enterprise Linux. In this article we will see how to install SQL Server 2017 again on RHEL but with only 1 core and 1GB Ram using Docker container on Ubuntu. The reason I used the Docker container solution was [\u2026]<\/p>","protected":false},"author":1,"featured_media":2382,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[120,11,15,34],"tags":[121,122,75,23,6],"class_list":["post-2329","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-containers","category-databases","category-ms-sqlserver","category-unix","tag-containers","tag-docker","tag-linux","tag-microsoft","tag-sqlserver"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 SQL Server \u03c3\u03b5 Linux \u03bc\u03ad\u03c3\u03c9 Docker - DataPlatform.gr<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dataplatform.gr\/en\/egkatastasi-sql-server-se-linux-meso-docker\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 SQL Server \u03c3\u03b5 Linux \u03bc\u03ad\u03c3\u03c9 Docker - DataPlatform.gr\" \/>\n<meta property=\"og:description\" content=\"\u03a3\u03b5 \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf \u03ac\u03c1\u03b8\u03c1\u03bf \u03b5\u03af\u03c7\u03b1\u03bc\u03b5 \u03b4\u03b5\u03b9 \u03c4\u03b7\u03bd \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 SQL Server 2019 \u03c3\u03b5 Red Hat Enterprise Linux. \u03a3\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03ac\u03c1\u03b8\u03c1\u03bf \u03b8\u03b1 \u03b4\u03bf\u03cd\u03bc\u03b5 \u03c0\u03c9\u03c2 \u03b3\u03af\u03bd\u03b5\u03c4\u03b1\u03b9 \u03bd\u03b1 \u03b5\u03b3\u03ba\u03b1\u03c4\u03b1\u03c3\u03c4\u03ae\u03c3\u03bf\u03c5\u03bc\u03b5 SQL Server 2017 \u03c0\u03ac\u03bb\u03b9 \u03c3\u03b5 RHEL \u03b1\u03bb\u03bb\u03ac \u03bc\u03b5 \u03bc\u03cc\u03bd\u03bf 1 core \u03ba\u03b1\u03b9 1GB Ram \u03bc\u03b5 \u03c7\u03c1\u03ae\u03c3\u03b7 Docker container \u03c3\u03b5 Ubuntu. \u039f \u03bb\u03cc\u03b3\u03bf\u03c2 \u03c0\u03bf\u03c5 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b1 \u03c4\u03b7\u03bd \u03bb\u03cd\u03c3\u03b7 \u03c4\u03bf\u03c5 Docker container \u03ae\u03c4\u03b1\u03bd\u03b5 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dataplatform.gr\/en\/egkatastasi-sql-server-se-linux-meso-docker\/\" \/>\n<meta property=\"og:site_name\" content=\"DataPlatform.gr\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/dataplatform.gr\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-04-05T05:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-01-15T11:35:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/dp_docker_sql_ux.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Stratos Matzouranis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Stratos Matzouranis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/egkatastasi-sql-server-se-linux-meso-docker\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/egkatastasi-sql-server-se-linux-meso-docker\\\/\"},\"author\":{\"name\":\"Stratos Matzouranis\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#\\\/schema\\\/person\\\/e87bf4fd02b65cb6aa0942f87245bbaf\"},\"headline\":\"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 SQL Server \u03c3\u03b5 Linux \u03bc\u03ad\u03c3\u03c9 Docker\",\"datePublished\":\"2021-04-05T05:00:00+00:00\",\"dateModified\":\"2025-01-15T11:35:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/egkatastasi-sql-server-se-linux-meso-docker\\\/\"},\"wordCount\":215,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/egkatastasi-sql-server-se-linux-meso-docker\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/dp_docker_sql_ux.png\",\"keywords\":[\"Containers\",\"Docker\",\"Linux\",\"Microsoft\",\"SQL Server\"],\"articleSection\":[\"Containers\",\"Databases\",\"Microsoft SQL Server\",\"Unix\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dataplatform.gr\\\/egkatastasi-sql-server-se-linux-meso-docker\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/egkatastasi-sql-server-se-linux-meso-docker\\\/\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/egkatastasi-sql-server-se-linux-meso-docker\\\/\",\"name\":\"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 SQL Server \u03c3\u03b5 Linux \u03bc\u03ad\u03c3\u03c9 Docker - DataPlatform.gr\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/egkatastasi-sql-server-se-linux-meso-docker\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/egkatastasi-sql-server-se-linux-meso-docker\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/dp_docker_sql_ux.png\",\"datePublished\":\"2021-04-05T05:00:00+00:00\",\"dateModified\":\"2025-01-15T11:35:33+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/egkatastasi-sql-server-se-linux-meso-docker\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dataplatform.gr\\\/egkatastasi-sql-server-se-linux-meso-docker\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/egkatastasi-sql-server-se-linux-meso-docker\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/dp_docker_sql_ux.png\",\"contentUrl\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/dp_docker_sql_ux.png\",\"width\":1280,\"height\":720},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/egkatastasi-sql-server-se-linux-meso-docker\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0391\u03c1\u03c7\u03b9\u03ba\u03ae\",\"item\":\"https:\\\/\\\/www.dataplatform.gr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Databases\",\"item\":\"https:\\\/\\\/www.dataplatform.gr\\\/category\\\/databases\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Microsoft SQL Server\",\"item\":\"https:\\\/\\\/www.dataplatform.gr\\\/category\\\/databases\\\/ms-sqlserver\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 SQL Server \u03c3\u03b5 Linux \u03bc\u03ad\u03c3\u03c9 Docker\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#website\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/\",\"name\":\"dataplatform.gr - Sky is not the limit!\",\"description\":\"\u0398\u03b5\u03c9\u03c1\u03af\u03b1, \u03bf\u03b4\u03b7\u03b3\u03bf\u03af \u03ba\u03b1\u03b9 \u03c3\u03ba\u03ad\u03c8\u03b5\u03b9\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03ba\u03ac\u03bd\u03b5\u03c4\u03b5 \u03c4\u03b7 \u03b4\u03bf\u03c5\u03bb\u03b5\u03b9\u03ac \u03c3\u03b1\u03c2 \u03c0\u03b9\u03bf \u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03b9\u03ba\u03ac \u03ba\u03b1\u03b9 \u03c0\u03b9\u03bf \u03b5\u03cd\u03ba\u03bf\u03bb\u03b1 \u03c0\u03ac\u03bd\u03c9 \u03c3\u03c4\u03b9\u03c2 \u03b2\u03ac\u03c3\u03b5\u03b9\u03c2 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd, \u03c3\u03c4\u03b7\u03bd SQL, \u03c3\u03c4\u03bf Business Intelligence \u03ba\u03b1\u03b9 \u03c3\u03c4\u03b1 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03b3\u03b5\u03bd\u03b9\u03ba\u03cc\u03c4\u03b5\u03c1\u03b1.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dataplatform.gr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#organization\",\"name\":\"dataplatform.gr\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/dp_logo_wbacki.png\",\"contentUrl\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/dp_logo_wbacki.png\",\"width\":322,\"height\":139,\"caption\":\"dataplatform.gr\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/dataplatform.gr\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/dataplatform-gr\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#\\\/schema\\\/person\\\/e87bf4fd02b65cb6aa0942f87245bbaf\",\"name\":\"Stratos Matzouranis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g\",\"caption\":\"Stratos Matzouranis\"},\"sameAs\":[\"https:\\\/\\\/www.dataplatform.gr\"],\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/en\\\/author\\\/stratos-matzouranis\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 SQL Server \u03c3\u03b5 Linux \u03bc\u03ad\u03c3\u03c9 Docker - DataPlatform.gr","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dataplatform.gr\/en\/egkatastasi-sql-server-se-linux-meso-docker\/","og_locale":"en_US","og_type":"article","og_title":"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 SQL Server \u03c3\u03b5 Linux \u03bc\u03ad\u03c3\u03c9 Docker - DataPlatform.gr","og_description":"\u03a3\u03b5 \u03c0\u03c1\u03bf\u03b7\u03b3\u03bf\u03cd\u03bc\u03b5\u03bd\u03bf \u03ac\u03c1\u03b8\u03c1\u03bf \u03b5\u03af\u03c7\u03b1\u03bc\u03b5 \u03b4\u03b5\u03b9 \u03c4\u03b7\u03bd \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 SQL Server 2019 \u03c3\u03b5 Red Hat Enterprise Linux. \u03a3\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03ac\u03c1\u03b8\u03c1\u03bf \u03b8\u03b1 \u03b4\u03bf\u03cd\u03bc\u03b5 \u03c0\u03c9\u03c2 \u03b3\u03af\u03bd\u03b5\u03c4\u03b1\u03b9 \u03bd\u03b1 \u03b5\u03b3\u03ba\u03b1\u03c4\u03b1\u03c3\u03c4\u03ae\u03c3\u03bf\u03c5\u03bc\u03b5 SQL Server 2017 \u03c0\u03ac\u03bb\u03b9 \u03c3\u03b5 RHEL \u03b1\u03bb\u03bb\u03ac \u03bc\u03b5 \u03bc\u03cc\u03bd\u03bf 1 core \u03ba\u03b1\u03b9 1GB Ram \u03bc\u03b5 \u03c7\u03c1\u03ae\u03c3\u03b7 Docker container \u03c3\u03b5 Ubuntu. \u039f \u03bb\u03cc\u03b3\u03bf\u03c2 \u03c0\u03bf\u03c5 \u03c7\u03c1\u03b7\u03c3\u03b9\u03bc\u03bf\u03c0\u03bf\u03af\u03b7\u03c3\u03b1 \u03c4\u03b7\u03bd \u03bb\u03cd\u03c3\u03b7 \u03c4\u03bf\u03c5 Docker container \u03ae\u03c4\u03b1\u03bd\u03b5 [&hellip;]","og_url":"https:\/\/www.dataplatform.gr\/en\/egkatastasi-sql-server-se-linux-meso-docker\/","og_site_name":"DataPlatform.gr","article_publisher":"https:\/\/www.facebook.com\/dataplatform.gr\/","article_published_time":"2021-04-05T05:00:00+00:00","article_modified_time":"2025-01-15T11:35:33+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/dp_docker_sql_ux.png","type":"image\/png"}],"author":"Stratos Matzouranis","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Stratos Matzouranis","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dataplatform.gr\/egkatastasi-sql-server-se-linux-meso-docker\/#article","isPartOf":{"@id":"https:\/\/www.dataplatform.gr\/egkatastasi-sql-server-se-linux-meso-docker\/"},"author":{"name":"Stratos Matzouranis","@id":"https:\/\/www.dataplatform.gr\/#\/schema\/person\/e87bf4fd02b65cb6aa0942f87245bbaf"},"headline":"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 SQL Server \u03c3\u03b5 Linux \u03bc\u03ad\u03c3\u03c9 Docker","datePublished":"2021-04-05T05:00:00+00:00","dateModified":"2025-01-15T11:35:33+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dataplatform.gr\/egkatastasi-sql-server-se-linux-meso-docker\/"},"wordCount":215,"commentCount":2,"publisher":{"@id":"https:\/\/www.dataplatform.gr\/#organization"},"image":{"@id":"https:\/\/www.dataplatform.gr\/egkatastasi-sql-server-se-linux-meso-docker\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/dp_docker_sql_ux.png","keywords":["Containers","Docker","Linux","Microsoft","SQL Server"],"articleSection":["Containers","Databases","Microsoft SQL Server","Unix"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dataplatform.gr\/egkatastasi-sql-server-se-linux-meso-docker\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dataplatform.gr\/egkatastasi-sql-server-se-linux-meso-docker\/","url":"https:\/\/www.dataplatform.gr\/egkatastasi-sql-server-se-linux-meso-docker\/","name":"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 SQL Server \u03c3\u03b5 Linux \u03bc\u03ad\u03c3\u03c9 Docker - DataPlatform.gr","isPartOf":{"@id":"https:\/\/www.dataplatform.gr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dataplatform.gr\/egkatastasi-sql-server-se-linux-meso-docker\/#primaryimage"},"image":{"@id":"https:\/\/www.dataplatform.gr\/egkatastasi-sql-server-se-linux-meso-docker\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/dp_docker_sql_ux.png","datePublished":"2021-04-05T05:00:00+00:00","dateModified":"2025-01-15T11:35:33+00:00","breadcrumb":{"@id":"https:\/\/www.dataplatform.gr\/egkatastasi-sql-server-se-linux-meso-docker\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dataplatform.gr\/egkatastasi-sql-server-se-linux-meso-docker\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dataplatform.gr\/egkatastasi-sql-server-se-linux-meso-docker\/#primaryimage","url":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/dp_docker_sql_ux.png","contentUrl":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/dp_docker_sql_ux.png","width":1280,"height":720},{"@type":"BreadcrumbList","@id":"https:\/\/www.dataplatform.gr\/egkatastasi-sql-server-se-linux-meso-docker\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0391\u03c1\u03c7\u03b9\u03ba\u03ae","item":"https:\/\/www.dataplatform.gr\/"},{"@type":"ListItem","position":2,"name":"Databases","item":"https:\/\/www.dataplatform.gr\/category\/databases\/"},{"@type":"ListItem","position":3,"name":"Microsoft SQL Server","item":"https:\/\/www.dataplatform.gr\/category\/databases\/ms-sqlserver\/"},{"@type":"ListItem","position":4,"name":"\u03a0\u03ce\u03c2 \u03ba\u03ac\u03bd\u03bf\u03c5\u03bc\u03b5 \u03b5\u03b3\u03ba\u03b1\u03c4\u03ac\u03c3\u03c4\u03b1\u03c3\u03b7 SQL Server \u03c3\u03b5 Linux \u03bc\u03ad\u03c3\u03c9 Docker"}]},{"@type":"WebSite","@id":"https:\/\/www.dataplatform.gr\/#website","url":"https:\/\/www.dataplatform.gr\/","name":"dataplatform.gr - Sky is not the limit!","description":"\u0398\u03b5\u03c9\u03c1\u03af\u03b1, \u03bf\u03b4\u03b7\u03b3\u03bf\u03af \u03ba\u03b1\u03b9 \u03c3\u03ba\u03ad\u03c8\u03b5\u03b9\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03ba\u03ac\u03bd\u03b5\u03c4\u03b5 \u03c4\u03b7 \u03b4\u03bf\u03c5\u03bb\u03b5\u03b9\u03ac \u03c3\u03b1\u03c2 \u03c0\u03b9\u03bf \u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03b9\u03ba\u03ac \u03ba\u03b1\u03b9 \u03c0\u03b9\u03bf \u03b5\u03cd\u03ba\u03bf\u03bb\u03b1 \u03c0\u03ac\u03bd\u03c9 \u03c3\u03c4\u03b9\u03c2 \u03b2\u03ac\u03c3\u03b5\u03b9\u03c2 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd, \u03c3\u03c4\u03b7\u03bd SQL, \u03c3\u03c4\u03bf Business Intelligence \u03ba\u03b1\u03b9 \u03c3\u03c4\u03b1 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03b3\u03b5\u03bd\u03b9\u03ba\u03cc\u03c4\u03b5\u03c1\u03b1.","publisher":{"@id":"https:\/\/www.dataplatform.gr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dataplatform.gr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.dataplatform.gr\/#organization","name":"dataplatform.gr","url":"https:\/\/www.dataplatform.gr\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dataplatform.gr\/#\/schema\/logo\/image\/","url":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_logo_wbacki.png","contentUrl":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_logo_wbacki.png","width":322,"height":139,"caption":"dataplatform.gr"},"image":{"@id":"https:\/\/www.dataplatform.gr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/dataplatform.gr\/","https:\/\/www.linkedin.com\/company\/dataplatform-gr\/"]},{"@type":"Person","@id":"https:\/\/www.dataplatform.gr\/#\/schema\/person\/e87bf4fd02b65cb6aa0942f87245bbaf","name":"Stratos Matzouranis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g","caption":"Stratos Matzouranis"},"sameAs":["https:\/\/www.dataplatform.gr"],"url":"https:\/\/www.dataplatform.gr\/en\/author\/stratos-matzouranis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/posts\/2329","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/comments?post=2329"}],"version-history":[{"count":1,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/posts\/2329\/revisions"}],"predecessor-version":[{"id":5856,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/posts\/2329\/revisions\/5856"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/media\/2382"}],"wp:attachment":[{"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/media?parent=2329"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/categories?post=2329"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/tags?post=2329"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}