Iniciando no Docker
1º Imagem criada
Fonte e créditos:
- DevOps with Docker: https://courses.mooc.fi/org/uh-cs/courses/devops-with-docker-spring-2026/chapter-2/in-depth-dive-into-images
Como é a primeira imagem criada, ela é bem simples. Criei um arquivo hello.sh com o comando echo "Hello Docker" e dei permissão chmod +x para ele. Criei um outro arquivo chamado Dockerfile, que é padrão do Docker, e coloquei as informações que seriam usadas para criar a imagem.
Dockerfile
FROM alpine:3.21 # Inicia uma imagem do Alpine (distro Linux bem leve) para executar o script.
WORKDIR /usr/src/app # Define /usr/src/app como o ambiente de trabalho, os comandos abaixo são executados aqui.
COPY hello.sh . # Copia o arquivo hello.sh para dentro de /usr/src/app.
# RUN chmod +x hello.sh # caso esteja no windows ou não tenha executado o comando antes
CMD ["./hello.sh"] # Quando rodar o docker run, o comando executado será ./hello.sh.
Comandos:
docker build -t hello-docker .: para criar a imagem.docker image ls: para conferir se a imagem existe.docker run --name hello hello-docker: para rodar a imagem e criar o container.
Configurando um container do yt-dlp
O yt-dlp (https://github.com/yt-dlp/yt-dlp) é um programa para baixar vídeos do YouTube e de outros sites. Criar uma imagem Docker para ele foi um processo bem direto. Primeiro, é necessário baixar o programa para o caminho /usr/local/bin/yt-dlp e dar permissão chmod a+rx (onde a aplica a alteração a todos os usuários, e r e x dão permissão de leitura e execução). Também é preciso instalar o Python 3 e o ffmpeg para que o programa rode corretamente.
Com isso em mente, criei um Dockerfile com essas configurações:
Dockerfile
FROM ubuntu:24.04
WORKDIR /mydir
RUN apt-get update && apt-get install -y curl python3 ffmpeg
RUN curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
RUN chmod a+rx /usr/local/bin/yt-dlp
CMD ["/usr/local/bin/yt-dlp"]
Mas isso não funciona como o esperado. Por conta do CMD atual, ao passar a URL do vídeo na execução do container, o Docker gera um conflito. Para resolver isso, usei o ENTRYPOINT, que basicamente permite que o container se comporte como um executável nativo.
Dockerfile (Versão final)
Dockerfile
FROM ubuntu:24.04
WORKDIR /mydir
RUN apt-get update && apt-get install -y curl python3 ffmpeg
RUN curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp
RUN chmod a+rx /usr/local/bin/yt-dlp
# CMD ["/usr/local/bin/yt-dlp"]
ENTRYPOINT ["/usr/local/bin/yt-dlp"]
Agora sim, as URLs inseridas serão baixadas. Mas atenção: os vídeos ficam salvos na pasta /mydir dentro do diretório do container. Depois que encerrei o container, os vídeos foram perdidos, então caso alguém vá tentar replicar, cuidado com isso!



