Przeglądaj źródła

Docker instructions

Pierre-Yves Barriat 2 lat temu
rodzic
commit
b4ec4c2aa6
3 zmienionych plików z 245 dodań i 35 usunięć
  1. 1 35
      README.md
  2. 205 0
      docker.md
  3. 39 0
      ssh_connection.md

+ 1 - 35
README.md

@@ -1,38 +1,4 @@
-# SSH_connection
-
-Troubleshooting for ssh connection
-
-## Install
-
-First, clone the `TECLIM/SSH_connection` repository:
-
-```
-git clone https://gogs.elic.ucl.ac.be/TECLIM/SSH_connection.git
-```
-
-And now:
-
-```bash
-cd SSH_connection
-./install.sh
-```
-
-## Usage
-
-A few examples:
-
-```bash
-# from local elic network
-ssh coriolis
-rsync -av my_folder coriolis:~
-git clone ssh://gogs/TECLIM/Git_Training
-
-# from outside
-ssh coriolis%gwelic
-ssh lemaitre3%gwcism
-rsync -av my_folder coriolis%gwelic:~
-git clone ssh://gogs/TECLIM/Git_Training
-```
+# Tips and Tricks for ELIC
 
 ## Contributors
 

+ 205 - 0
docker.md

@@ -0,0 +1,205 @@
+# Docker
+
+Information on how to install and use Docker.
+
+Docker is an open-source project that automates the deployment of applications inside software containers.
+
+## Prerequisites
+
+Ensure you have the following:
+
+- a (fresh) install of Ubuntu LTS with SSH enabled and VSCode installed including a `sudo` user
+
+  >- SSH: `sudo apt install openssh-server`
+  >- VSCode: download `.deb` package from [this URL](https://code.visualstudio.com/download)
+
+- OR a Windows machine including a `Administrator` user with VSCode installed
+
+  >- VSCode: download `Windows installer` package from [this URL](https://code.visualstudio.com/download)
+
+## Install Docker on Ubuntu
+
+### Step 1 - Installing Docker
+
+Add the `docker-ce` repo:
+
+```bash
+sudo apt update
+sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
+
+curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
+echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
+
+sudo apt update
+```
+
+Install `docker`:
+
+```bash
+sudo apt install docker-ce
+```
+
+### Step 2 - Executing the Docker Command Without Sudo
+
+```bash
+sudo usermod -aG docker ${USER}
+```
+
+Reboot your machine:
+
+```bash
+sudo reboot
+```
+
+### Step 3 - Installing docker-compose
+
+`Docker Compose` is a tool that allows you to run multi-container application environments based on definitions set in a YAML file. It uses service definitions to build fully customizable environments with multiple containers that can share networks and data volumes.
+
+```bash
+mkdir -p ~/.docker/cli-plugins/
+curl -SL https://github.com/docker/compose/releases/download/v2.3.3/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
+
+chmod +x ~/.docker/cli-plugins/docker-compose
+```
+
+To verify that the installation was successful, you can run:
+
+```bash
+docker compose version
+```
+
+You'll see output similar to this:
+
+```bash
+Docker Compose version v2.3.3
+```
+
+## Setting Up a `docker-compose.yml` file
+
+To demonstrate how to set up a `docker-compose.yml` file and work with `Docker Compose`, you'll create a **postgres** environment using the official `postgres` image from `Docker Hub`, the public **Docker registry**. This containerized environment will serve a `postgres` service.
+
+Start off by creating a new directory in your home folder, and then moving into it:
+
+```bash
+mkdir ~/docker-repo
+cd ~/docker-repo
+```
+
+In this directory, set up an application folder to serve as the document root for your **postgres** environment and an *running* folder to serve as **persistent** "rundir" root:
+
+```bash
+mkdir postgres
+mkdir runnning
+```
+
+Next, create the `docker-compose.yml` file:
+
+```bash
+vi docker-compose.yml
+```
+
+Insert the following content in your `docker-compose.yml` file:
+
+```yaml
+version: '3.7'
+
+services:
+  postgres:
+    image: postgres:11
+    container_name: postgres
+    network_mode: bridge
+    restart: always
+    ports:
+      - 5432:5432
+    environment:
+      - POSTGRES_USER=postgres
+      - POSTGRES_PASSWORD=my_password
+    volumes:
+      - /home/$USER/docker-repo/running/postgres/data:/var/lib/postgresql/data
+```
+
+Save and close the file.
+
+## Running docker-compose
+
+With the `docker-compose.yml` file in place, you can now execute `Docker Compose` to bring your environment up. The following command will download the necessary `Docker` images, create a container for the **postgres** service, and run the containerized environment in background mode:
+
+```bash
+docker-compose -f docker-compose.yml up -d
+```
+
+`Docker Compose` will first look for the defined image on your local system, and if it can't locate the image it will download the image from `Docker Hub`.
+
+Your environment is now up and running in the background. To verify that the container is active, you can run:
+
+```bash
+docker ps
+```
+
+## Usefull commands
+
+Go inside the container:
+
+```bash
+docker exec -it postgres /bin/bash -l
+```
+
+Stop, start or restart the container:
+
+```bash
+docker stop postgres
+docker start postgres
+docker restart postgres
+```
+
+> Tips for Daniele
+
+```bash
+docker exec -it postgres /bin/bash -l
+apt update
+apt install postgis
+exit
+```
+
+> Tips for Daniele (Configure a database and dump the content from `dbexport.pgsql`)
+
+```bash
+psql -h localhost -p 5432 -U postgres
+
+CREATE ROLE livestock WITH SUPERUSER CREATEDB CREATEROLE LOGIN ENCRYPTED PASSWORD 'happycattle';
+CREATE DATABASE livestock_db;
+GRANT ALL PRIVILEGES ON DATABASE livestock_db TO livestock;
+\q
+
+psql -h localhost -p 5432 -U livestock livestock_db
+
+CREATE SCHEMA postgis;
+CREATE EXTENSION postgis SCHEMA public;
+\q
+
+psql -h localhost -p 5432 -U livestock livestock_db < dbexport.pgsql
+
+psql -h localhost -p 5432 -U livestock livestock_db
+
+SELECT * FROM livpop ORDER BY livpop DESC LIMIT 10;
+\q
+```
+
+## Install Docker on Windows
+
+### Install interactively
+
+- Downloaded the installer (`Docker Desktop Installer.exe`) from [Docker Hub](https://docs.docker.com/desktop/install/windows-install/)
+- Double-click `Docker Desktop Installer.exe` to run the installer
+- When prompted, ensure the **Use WSL 2** instead of **Hyper-V** option on the *Configuration page* is selected or not depending on your choice of backend
+  > If your system only supports one of the two options, you will not be able to select which backend to use
+- Follow the instructions on the installation wizard to authorize the installer and proceed with the install
+- When the installation is successful, click *Close* to complete the installation process
+
+### Start Docker Desktop
+
+Docker Desktop does not start automatically after installation. To start Docker Desktop:
+
+- Search for Docker, and select `Docker Desktop` in the search results
+- The Docker menu displays the *Docker Subscription Service Agreement* window.
+- Select *Accept* to continue. `Docker Desktop` starts after you accept the terms

+ 39 - 0
ssh_connection.md

@@ -0,0 +1,39 @@
+# SSH_connection
+
+Troubleshooting for ssh connection
+
+## Install
+
+First, clone the `TECLIM/SSH_connection` repository:
+
+```
+git clone https://gogs.elic.ucl.ac.be/TECLIM/SSH_connection.git
+```
+
+And now:
+
+```bash
+cd SSH_connection
+./install.sh
+```
+
+## Usage
+
+A few examples:
+
+```bash
+# from local elic network
+ssh coriolis
+rsync -av my_folder coriolis:~
+git clone ssh://gogs/TECLIM/Git_Training
+
+# from outside
+ssh coriolis%gwelic
+ssh lemaitre3%gwcism
+rsync -av my_folder coriolis%gwelic:~
+git clone ssh://gogs/TECLIM/Git_Training
+```
+
+## Contributors
+
+- ELIC members [@pbarriat](https://gogs.elic.ucl.ac.be/pbarriat)