Services/Docker

From Fundamental Ramen
Jump to navigation Jump to search

Clean Docker

TODO Command
Run debian image on Windows
# Git Bash
winpty docker run --name=debian0 -it debian:12

# Power Shell
docker run --name=debian0 -it debian:12
Open shell of running container
docker exec -it mwdev-mediawiki-1 /bin/bash
Copy file from running container
docker cp mwdev-mediawiki-1:/var/www/data/my_wiki.sqlite .
Build image
docker build .
docker build -t gdtile:2.1 .
docker tag c8abdb693116 gdtile:2.1
Remove exited containers
docker rm $(docker ps -f 'status=exited' -q)

sudo docker rm $(sudo docker ps -f 'status=exited' -q)
Remove unused images
docker rmi $(docker images -f "dangling=true" -q)

sudo docker rmi $(sudo docker images -f "dangling=true" -q)
run and start it again
docker run --name sandbox0 \
  --volume a:b \
  -it alpine:3.11
docker start -i sandbox0
Make apt faster
FROM ubuntu:20.04

RUN sed -i 's/\(archive\|security\).ubuntu.com/free.nchc.org.tw/' /etc/apt/sources.list
RUN apt update
# In host
docker run -it ubuntu:20.04
# In container
sed -i 's/\(archive\|security\).ubuntu.com/free.nchc.org.tw/' /etc/apt/sources.list
apt update
Run
# Mapping directory on Windows, do not use ~
docker run -v C:\Users\User\repos\something:/docroot -it someimage bash
docker run -v %USERPROFILE%\repos\webserv:/docroot -it webserv-compose_web bash
test
docker ps --size --all
logs
docker ps logs -ft container

Dockerfile Debugging

TODO Command
Verify environment variable
(stdout won't be printed)
RUN export NVM_DIR="$HOME/.nvm"
RUN echo "NVM_DIR=$NVM_DIR" >&2
docker compose build --progress=plain
docker compose build --no-cache --progress=plain