How to deploy a stack to a swarm
I have a docker image tagged as me/my-image, and I have a private repo on the dockerhub named me-private.
When I push my me/my-image, I end up always hitting the public repo.
What is the exact syn...
The personal, minimalist, super fast, database-free bookmarking service
How to pass command line arguments to a python Docker container - Before getting into the docker container arguments we must know about python command line arguments and how they are accessed by the developer. Command line arguments are of great use when we want our python script to be controlled outside of the program. Access the python script’s command line ar
Desinstalación de paquetes previos
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
Instalación
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Prueba de funcionamiento
sudo docker run hello-world
Error relativo a AppArmor
docker: Error response from daemon: AppArmor enabled on system but the docker-default profile could not be loaded: running `/usr/sbin/apparmor_parser apparmor_parser -Kr /var/lib/docker/tmp/docker-default3965615640` failed with output: apparmor_parser: Unable to replace "docker-default". Permission denied; attempted to load a profile while confined?
Desinstalación de AppArmor
systemctl stop apparmor
systemctl disable apparmor
apt remove --assume-yes --purge apparmor
Si todavía error de permisos
- Habilitar el Nesting en las propiedades del contenedor Proxmox
PERSONALIZAR LA IMAGEN DE ETHERPAD, GENERAR NUEVA IMAGEN Y SUBIR A UN REGISTRY (CANISTER EN ESTE CASO)
- Partimos del despliegue de un contenedor Etherpad a partir de su imagen dockerhub:
docker --name my-etherpad run --name my-etherpad -d --restart=unless-stopped -v etherpad_data:/opt/etherpad-lite/var --env ADMIN_PASSWORD=admin -p 8088:9001 etherpad/etherpad - Modificamos la instalación por defecto añadiendo por ejemplo plugins desde la URL de administración con el usuario admin y contraseña ADMIN_PASSWORD anterior. URL:8088/admin en este ejemplo.
-
Una vez que tenemos la aplicación configurada y modificada con nuestras preferencias es hora de tomar la imagen a partir del contenedor que estamos ejecutando. El contenedor, my-etherpad en el ejemplo, ha estar corriendo. Para ello:
- Utilizaremos docker commit para generar la imagen:
docker commit my-etherpad - Utilizaremos docker tag para etiquetar la imagen generada:
docker images -a `(para identificar la imagen recién generada y sin etiquetar todavía)` docker tag 0c17f0798823 fulanito/etherpad
- Utilizaremos docker commit para generar la imagen:
- Aquí ya tendríamos la imagen personalizada, fulanito/etherpad, lista para instanciar nuevos contenedores.
-
A continuación subiremos, docker push, la imagen a un registry, en este caso lo haremos a un registry privado gratuito que proporciona canister.io. Debes haber creado previamente en dicho registry in repositorio que se llamará como la imagen, fulanito/etherpad en este caso:
docker login --username=username cloud.canister.io:5000 docker push cloud.canister.io:5000/fulanito/etherpad
tareas previas
> id # nos devuelve el PUID y el PGID que pondremos en el docker-compose.yml
> mkdir -p /mnt/qnap_multimedia
> mount 192.168.1.11:/share/CACHEDEV1_DATA/Multimedia /mnt/qnap_multimedia # probamos el punto de montaje NFS que después incluiremos como volumen en docker-compose.yml y en el arranque fstab
Si error "I can't mount NFS share - bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program." hay que instalar previamente nfs-common o nfs-utils: apt install nfs-common
docker-compose.yml
version: "2.1"
services:
plex:
image: lscr.io/linuxserver/plex:latest
container_name: plex
network_mode: host
environment:
- PUID=0
- PGID=0
- VERSION=docker
- PLEX_CLAIM= #optional
volumes:
- /media/plex/library:/config # almacenamiento local al contenedor lxc donde corre el contenedor docker, si sólo empleamos el remoto NFS este se podría eliminar
- /media/plex/tvseries:/tv
- /media/plex/movies:/movies
- /media/plex/music:/music
- /mnt/qnap_multimedia:/qnap # almacenamiento remoto montado por NFS en el contenedor lxc donde corre el contenedor docker
restart: unless-stopped
# /etc/fstab
192.168.1.11:/share/CACHEDEV1_DATA/Multimedia /mnt/qnap_multimedia nfs defaults 0 0Arrancar Container Detached y con Reinicio:
*p.ej: Para arrancar guacamole en ARM docker run -d --restart unless-stopped -p 8080:8080 -v /home/user/guacamole:/config oznu/guacamole:armhf
Desplegar Portainer:
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
Install Docker CE on a Linode running Debian 10.
Docker is an application that simplifies the process of managing application processes in containers. In this tutorial, you'll install and use Docker Community Edition (CE) on Ubuntu 18.04. You'll install Docker itself, work with containers and images