= DOCKER {{tag>devops info}} == related {{topic>docker&nodate&nouser&sort&tags}} == +info * [[tech:docker:dockerd:start]] * [[tech:docker:dockerfile]] * [[tech:docker:docker-compose:start]] * [[tech:docker:volumes]] * [[tech:docker:security]] * [[tech:docker:TLS]] * [[tech:docker:context]] * [[tech:docker:scan]] * Dev Containers: [[https://www.youtube.com/watch?v=DkKs29etRis]] * Health Check: [[https://atareao.es/podcast/tu-contenedor-docker-podria-estar-muerto-y-tu-sin-enterarte/]] * [[https://tech.paulcz.net/blog/secure-docker-with-tls/]] * [[https://gist.github.com/kekru/974e40bb1cd4b947a53cca5ba4b0bbe5]] * [[https://blog.elhacker.net/2024/11/comandos-de-docker-basicos-y-avanzados.html]] === take a look * [[https://docs.docker.com/engine/reference/commandline/create/]] * [[https://docs.docker.com/storage/bind-mounts/]] * [[https://docs.docker.com/compose/compose-file/#volumes]] === casos de uso * [[tech:docker:docker-compose:casosuso]] * [[tech:docker:run]] == herramientas * Dockly:docker run -it --rm -v /var/run/docker.sock:/var/run/docker.sock lirantal/dockly * Oxker:docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock:ro --pull=always mrjackwills/oxker * LazyDocker:docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock -v /yourpath:/.config/jesseduffield/lazydocker lazyteam/lazydocker * Dry (docker & swarm):docker run --rm -it -v /var/run/docker.sock:/var/run/docker.sock -e DOCKER_HOST=$DOCKER_HOST moncho/dry /via: [[https://atareao.es/podcast/cinco-herramientas-para-gestionar-docker/]] == documentación * {{ :tech:docker:docker-cookbook.pdf |}} == dockerhub ♥ * nextcloud : [[https://hub.docker.com/_/nextcloud/]] * vsftpd : [[https://dockerfile.readthedocs.io/en/latest/content/DockerImages/dockerfiles/vsftp.html#environment-variables]] * rtorrent + rutorrent : [[https://hub.docker.com/r/diameter/rtorrent-rutorrent/]] * mariadb : [[https://hub.docker.com/_/mariadb/]] * arm : [[https://hub.docker.com/u/arm32v7/]] * [[https://medium.freecodecamp.org/the-easy-way-to-set-up-docker-on-a-raspberry-pi-7d24ced073ef]] * autossh : [[https://www.everythingcli.org/ssh-tunnelling-for-fun-and-profit-autossh/]] * [[https://github.com/dreamhost/docker-autossh/blob/master/Dockerfile]] * VPN * [[https://hub.docker.com/r/hwdsl2/ipsec-vpn-server/]] * [[https://hub.docker.com/r/kylemanna/openvpn/]] * [[https://www.digitalocean.com/community/tutorials/how-to-run-openvpn-in-a-docker-container-on-ubuntu-14-04]] * [[https://www.reddit.com/r/docker/comments/7e0gid/docker_with_pia_vpn_for_transmission_and/]] == resumen comandos === instalación * añadir usuario actual al grupo de docker y poder usarlo al instante: ''sudo usermod -aG docker $(whoami) && newgrp docker'' === informativos * ''docker info'' * ''docker ps'' * ''-a'' : all * ''-q'' : only ID * ''-f '' : ''docker -ps -af "status=exited"'' * ''docker search'' * ''docker inspect '' : vuela JSON con información * ''docker inspect | grep IPAddress'' === contenedores * estados de los contenedores * **CREATED** * -> start -> **RUNNING** * -> pause -> **PAUSED** -> unpause **RUNNNIG** * -> stop -> **STOPPED** -> restart -> **RUNNIG** * -> kill -> **KILLED** * ''docker ps'' * ''-a'' * ''-q'' * ''docker run []'' * ''-i'' : interactive * ''-t'' : tty * ''%%--rm%%'' : contenedor de un solo uso * ''-d'': detach (el proceso no se queda "colgado" ejecutando el contenedor)... lanzar contenedor en background * ''-p 80:80'': mapea el puerto host:contenedor, en todos los interfaces * ''-p 127.0.0.1:80:80'': el contenedor solo será accesible desde 127.0.0.1 * ''-P'': mapea el puerto en el que está escuchando el contenedor a un puerto aleatorio del equipo * ''%%--name %%'' * ''docker run -it '' : al salir del contenedor pasa a **STOPPED** * ''docker start '' : arrancar contenedor parado * ''docker pause '' * ''docker unpause '' * ''docker stop '' * ''docker kill '' * ''docker exec [-it] []'' * ''bash'' o ''sh'' serían comandos válidos si están instalados en el contenedor * ''docker rm '' * no se puede eliminar containers en ejecución * ''docker rm $(docker ps -aq)'' : elimina todos los contenedores * ''docker commit [REPOSITORY[:TAG]]'' : crea imagen de un contenedor === imágenes * ''docker pull debian[:]'' * ''docker images'' * ''-f'' o ''--filter'' * "dangling=true": filtra lista imágenes no tageadas * "label=": filtra por labels (a nivel de imagen, se ven siempre) * "label==" : filtra por el contenido de las claves * ''--format "%%{{.ID}}:{{.Repository}}%%"'': formato de salida (escrito en Go, plantilla) * ''docker rmi '': borrar una imagen * ''docker tag '' asignar un nombre a una imagem sin tagear, copiar si ya estaba tageada * ''docker save -o :'' guarda en una copia "física" de la imagen * NO recomendado! * ''docker load -i '': importa la imagen * ''docker history '': muestra las capas de una imagen y el tamaño de cada una # mostrar (y eliminar) imágenes huérfanas : sin usar docker image list -q --filter "dangling=true" docker rmi $(docker image list -q --filter "dangling=true") docker image rm docker image list -q --filter "dangling=true" ?? === errores * 12/2022 - **docker: Error response from daemon: cgroups: cgroup mountpoint does not exist: unknown.**:sudo mkdir /sys/fs/cgroup/systemd sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd * /via: [[https://bigdata-etl.com/docker-cgroup-mountpoint-does-not-exist-unknown/]]