Linux Docker - omartek/linux_variePerLaboratorio GitHub Wiki

Table of Contents

Installazione e comandi

Installare docker guida ufficiale

Guida Docker

 curl -fsSL https://get.docker.com -o get-docker.sh
 sudo sh get-docker.sh

Guida Docker-compose

 curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
 chmod +x /usr/local/bin/docker-compose
 ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

Aggiunto utente al gruppo docker per evitare l'utilizzo di sudo o utente root

 sudo usermod -aG docker nome_utente

Eseguire con il comando seguente se si vuole controllare il log

 docker-compose up

oppure per eseguire in background

 docker-compose up -d

Link installazione su Ubuntu 18.04

Play with Docker

PWD Play with Docker

RaspberryPI

 curl -sSL https://get.docker.com | sh
 sudo usermod -aG docker pi
 sudo apt-get install libffi-dev libssl-dev
 sudo apt install python3-dev
 sudo apt-get install -y python3 python3-pip
 sudo pip3 install docker-compose

Docker: comandi

Scarica un'immagine e crea un contenitore

 docker run hello-world
 docker run -it ubuntu
 docker pull docker/whalesay   // run esegue anche il pull
 docker run docker/whalesay cowsay boo

Avvio e arresto

 systemctl enable docker
 systemctl disable docker
 systemctl status docker
 systemctl start docker
 systemctl stop docker
 systemctl restart docker

Elenca le immagini create/scaricate

 docker images

Elenca i container creati e attivi mostrando ID e NAMES

 docker ps

Elenca tutti i container presenti sulla macchina

 docker ps -a

Ferma il container specificato

 docker stop IDcontainer

Impostare il riavvio automatico docker update --restart=always 0576df221c0b(ID docker)

Avvia un container e avvia una bash per le modifiche

 docker start <container>
 docker exec -it <container> /bin/bash

Uscire dalla bash

 exit

Esempi utilizzo di exec

Elimina un'immagine

 docker rmi IDcontainer

Crea un'immagine da un contenitor

 docker commit NAMES image-name

Network

 docker network ls
 docker network --help

Volumi

 docker volume ls
 docker volume --help

Controllo dimensione su disco

Spiegazione contenuto delle cartelle

 docker system df
 docker ps --size
 docker system prune -a

Docker HUB

Link a Docker Hub

Docker: Apache web server

Link con istruzioni

Etherpad

Guida immagine docker

 docker pull etherpad/etherpad
 docker run --name etherpad --net etherpad_net --detach --publish 82:9001 etherpad/etherpad

Minetest

Guida Minetest Docker

 docker create \
  --name=minetest \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/London \
  -e CLI_ARGS="--gameid minetest" `#optional` \
  -p 30000:30000/udp \
  -v <path to data>:/config/.minetest \
  --restart unless-stopped \
  linuxserver/minetest

Calibre-web

Vedi il link per l'utilizzo di coker-compose.yml

Guida CalibreWeb

 docker create \
  --name=calibre-web \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/London \
  -e DOCKER_MODS=linuxserver/calibre-web:calibre \
  -p 8083:8083 \
  -v /home/ubuntu/calibre/config:/config \
  -v /home/ubuntu/calibre/books:/books \
  --restart unless-stopped \
  linuxserver/calibre-web

Ubooquity

Guida Ubooquity

Bookstack

Guida Bookstack

Moodle

Vedi file docker-compose.yml.

Moodle

Ghost blog

 docker run -d --name some-name -e url=https://blog.scuolabit.it -p 3001:2368 ghost

Utilizzare tema liebling Importare il file json, se precedentemente esportato da altro ghost-blog. Copiare le immagini nel volume <path></path>/data_/images/ Per cercare il volume docker utilizzare docker volume inspect IDvolume.

Portainer

Applicazione web per la gestione dei container tramite webGUI.

Installato dentro Librelec tramite repository di Linuxserver.io ed utilizzato per installare Ubooquity all'interno del media center.

Installazione

 docker volume create portainer_data
 docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

Container installati

Per editare all'interno dei container installare un editor (ma meglio utilizzare i volumi):

 apt-get update
 apt-get vim

Nginx Reverse Proxy

Guarda la guida Wiki per come gestire più sottodomini da un'unica VPS usando Nginx come reverse proxy.

Pulire log

 journalctl --vacuum-time=2d

Impostare nel file .conf :

 nano /etc/systemd/journald.conf
 SystemMaxUse=100M
 systemctl restart systemd-journald

docker-credential-pass

Install pass

  sudo apt-get install pass

Download, extract, make executable, and move docker-credential-pass

  wget https://github.com/docker/docker-credential-helpers/releases/download/v0.7.0/docker-credential-pass-v0.7.0-amd64 && chmod +x docker-credential-pass-v0.7.0-amd64 && sudo mv docker-credential-pass-v0.7.0-amd64 /usr/local/bin/docker-credential-pass

Create a new gpg2 key.

  gpg2 --gen-key

Follow prompts from gpg2 utility

Initialize pass using the newly created key

  pass init "<Your Name>"

Add credsStore to your docker ~/.docker/config.json. This can be done with sed if you don't already have credStore added to your config or you can manually add "credStore":"pass" to the config.json.

  sed -i '0,/{/s/{/{\n\t"credsStore": "pass",/' ~/.docker/config.json

oppure

 {
        "credsStore": "pass"
 }

Login to docker

  docker login
⚠️ **GitHub.com Fallback** ⚠️