Linux Docker - omartek/linux_variePerLaboratorio GitHub Wiki
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh
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
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
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
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
Spiegazione contenuto delle cartelle
docker system df docker ps --size docker system prune -a
docker pull etherpad/etherpad docker run --name etherpad --net etherpad_net --detach --publish 82:9001 etherpad/etherpad
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
Vedi il link per l'utilizzo di coker-compose.yml
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
Vedi file docker-compose.yml.
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.
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.
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
Per editare all'interno dei container installare un editor (ma meglio utilizzare i volumi):
apt-get update apt-get vim
Guarda la guida Wiki per come gestire più sottodomini da un'unica VPS usando Nginx come reverse proxy.
journalctl --vacuum-time=2d
Impostare nel file .conf :
nano /etc/systemd/journald.conf SystemMaxUse=100M systemctl restart systemd-journald
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