Disini penulis ingin mendokumentasi bagaimana tahapan “Quickstart: Run SQL Server Linux container images with Docker” yang diposting oleh microsoft. ada beberapa tahapan yang dapat digunakan seperti pada ubuntu maupun docker. penulis akan mencoba merekronstruksi bash command yang akan dijalankan untuk sampai pada berjalannya SQL Server
Instalasi Docker
Penulis akan menggunakan pendekatan docker untuk mempermudah konfigurasi dalam melakukan instalasi SQL Server. pertama kita harus menginstall docker. penulis menggunakan os linux (parrot os), pembaca dapat menyesuaikan kebutuhan os pembaca. terdapat kendala dalam melakukan instalasi docker pada linux parrot os. sehingga diperlukan workaround agar dapat terinstallnya docker, penulis menggunakan snap untuk menginstall docker. apa itu snap? Snap adalah aplikasi paket manager mirip seperti apt. dapat dilihat pada tautan berikut https://www.newbienote.com/2022/11/apa-itu-snap.html. lalu bagaimana dengan instalasi docker? pertama kita harus menginstall snap terlebih dahulu
sudo apt update sudo apt install snapd
lalu kita install docker menggunakan snap
sudo snap install docker
setelah terinstall kita dapat coba menjalankan hello-world containter yang sudah dimiliki oleh docker. caranya sebagai berikut
docker run hello-world
maka system akan memunculkan seperti ini
Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
hore! kita sudah berhasil menginstall docker
Instalasi SQL Server
setelah kita menginstal docker, kita dapat lanjut untuk menginstall SQL Server. penulis akan menggunakan SQL Server 2017 sebagai contoh. pertama kita akan mengambil image SQL Server 2017 dengan command berikut
docker pull mcr.microsoft.com/mssql/server:2017-latest
Setelah itu untuk menjalankan docker image tersebut kita dapat menjalankan command berikut
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" -p 1433:1433 --name sql1 --hostname sql1 -d mcr.microsoft.com/mssql/server:2017-latest
perlu dicatat <YourStrong@Passw0rd> harus di ubah ya. sedangkan sql1 pada –name dan –hostname dapat disesuaikan oleh pembaca. setelah dijalankan, dapat menjalankan command berikut
docker ps -a
maka akan terlihat tabel untuk memastikan bahwa docker sudah membuat container berdasarkan image diatas
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d4a1999ef83e mcr.microsoft.com/mssql/server:2017-latest "/opt/mssql/bin/perm..." 2 minutes ago Up 2 minutes 0.0.0.0:1433->1433/tcp, :::1433->1433/tcp sql1
perlu dipahami bahwa terdapat STATUS, akan memiliki beberapa value seperti “UP” maupun “Exit”. jika dalam waktu tertentu containter tersebut memunculkan info Exit maka pembaca dapat melihat log dengan menjalankan code dibawah ini
docker logs d4a1999ef83e
hasil pada command tersebut akan memunculkan log pada docker. seperti dibawah ini
ERROR: Unable to set system administrator password: Password validation failed. The password does not meet SQL Server password policy requirements because it is not complex enough. The password must be at least 8 characters long and contain characters from three of the following four sets: Uppercase letters, Lowercase letters, Base 10 digits, and Symbols..
dari error tersebut menunjukan bahwa terdapat policy pada SqlServer sehingga harus disesuaikan pada saat menjalankan docker run. kemudian apabila sudah dalam kondisi UP, maka kita dapat menjalankan command berikut
docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection
apabila setelah menjalankan command tersebut muncul ‘SQL Server is now ready for client connections. This is an informational message; no user action is required.’ maka SQL Server siap digunakan