Docker część IV: Baza mssql w dockerze i Visual Studio Code

Pracując nad aplikacjami często niezbędna będzie nam lokalna baza danych. Jako programiści .Net z pewnością regularnie, choć nie zawsze, będziemy korzystać z MSSQL. Powoduje to jednak bałagan w naszym systemie, który trzeba będzie później uporządkować. Tu z pomocą przychodzi nam Docker. Pozwala on nam na stawianie baz danych (w tym MSSQL) w kontenerach, które możemy w późniejszym czasie po prostu usunąć, nie martwiąc się o zaśmiecanie naszego komputera. Jak uruchomić taką bazę oraz podłączyć się do niej używając Visual Studio Code?
Zacznijmy jednak od początku – czyli czego będziemy potrzebować:
-Visual Studio Code z zainstalowanym dodatkiem MSSQL(w panelu extensions otwieranym z lewej strony lub kombinacją klawiszy command+shift+x(macbook) wyszukujemy mssql);
-Dockera, któremu na potrzeby uruchomienia bazy danych udostępnimy 4GB pamięci RAM, ponieważ obraz, z którego będziemy korzystać, wymaga co najmniej 3,5GB. Można to zmienić w panelu preferences, który wybieramy, klikając na ikonę dockera u góry(macbook).
Mając już wszystkie potrzebne rzeczy pobieramy potrzebny nam obraz komendą:

docker pull microsoft/mssql-server-linux

Jest to stworzony przez Microsoft obraz linuxa, który zawiera zainstalowaną bazę danych MSSQL. Aby uruchomić naszą bazę danych wpisujemy następującą komendę:

docker run -d -p 1433:1433 -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Asd123!.' microsoft/mssql-server-linux

Jak widać, musimy w naszej komendzie zdefiniować zmienne środowiskowe:
-ACCEPT_EULA – która określa naszą akceptację End-User Licensing Agreement;
-SA_PASSWORD – która określa hasło do domyślnego konta naszej bazy danych.
Musimy również przypisać domyślny port serwera MSSQL, czyli 1433, na port naszego komputera. W tym przypadku przypisałem go do domyślnego portu, na którym MSSQL serwer powinien się znaleźć, przez co przy łączeniu do bazy danych nie trzeba będzie podawać numeru portu. Ostatnią rzeczą, o której musimy pamiętać jest to, że nasze hasło musi mieć co najmniej 8 znaków i nie być zbyt proste, inaczej przy każdej próbie podłączenia do serwera kontener się wyłączy.
Po uruchomieniu naszego kontenera jesteśmy w stanie sprawdzić jego status przy użyciu komendy:

docker ps

Możemy go również wyłączyć komendą:

docker kill [id]

Jednak na razie pozostawimy go działającego.
Przejdźmy teraz do Visual Studio Code. Po uruchomieniu wybieramy kombinację klawiszy command+shift+p(macbook), ctrl+shift+p(windows), która otwiera nam okienko wszystkich komend. Wpisując “sql” znajdziemy komendy, które udostępnia nam dodatek MSSQL. Wybieramy “MS SQL:Manage Connections Profiles”, a następnie wpisujemy w podanej kolejności:
-serwer – wpisujemy “localhost”, ponieważ nasz serwer działa na domyślnym porcie MSSQL;
-nazwa bazy danych(opcjonalna) – to pole tym razem pozostawiamy bez zmian;
-typ uwierzytelniania – wybieramy SQL LOGIN;
-login – wpisujemy “SA”, czyli profil domyślny;
-hasło – wpisujemy to samo hasło, które ustanowiliśmy w komendzie docker run, czyli “Asd123!.”;
-zapisujemy hasło(opcjonalnie);
-nazwa naszego połączenia(opcjonalnie) – wpisujemy co chcemy, możemy nic nie wpisywać.
Teraz, po stworzeniu naszego profilu musimy stworzyć nowy plik z rozszerzeniem SQL. Nie trzeba go zapisywać, może to być nowy plik z typem tekstu SQL. Ponownie wyszukujemy komendy MSSQL, lecz tym razem wybieramy komendę “MS SQL:Connect”. Jeśli wszystko poszło dobrze, w prawym dolnym rogu zobaczymy napis “Connected” oraz “localhost:master:SA”. Możemy teraz stworzyć naszą bazę danych zapytaniem:

CREATE DATABASE Blog

Po prawej stronie zobaczymy wynik działania naszego zapytania:

Screen Shot 2017-08-15 at 16.12.53

Przełączmy się teraz na naszą bazę danych:

USE Blog

oraz stwórzmy pierwszą tabelę:

CREATE TABLE Posts(
    Id UNIQUEIDENTIFIER PRIMARY KEY NOT NULL,
    Title NVARCHAR(100) NOT NULL,
    Body NVARCHAR(500) NOT NULL,
    CreatedAt DATETIME NOT NULL
)

Teraz, wykonując proste zapytanie:

SELECT * FROM Posts

zobaczymy, iż nasza tabela została stworzona:

Screen Shot 2017-08-15 at 16.15.15

Jeśli chcemy teraz rozłączyć się z naszą bazą danych – klikamy w prawym dolnym rogu na “localhost:master:SA” (widać je na rysunkach wyżej) i wybieramy “Disconnect”.

Tak oto stworzyliśmy naszą pierwszą bazę danych w kontenerze mssql-server-linux. Oczywiście na produkcji nie będziemy używali bazy danych w kontenerze dockerowym, jednak jest to dobra alternatywa do instalowania lokalnie baz, których będziemy chcieli się szybko pozbyć.

Do przeczytania niedługo 😉

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s