Docker - это мини виртуальные машины.
Все команды нужно запускать с sudo, а чтобы от этого избавиться необходимо пользователя добавить в группу docker:
sudo usermod -aG docker $USER
Создать группу docker можно следующей командой:
sudo groupadd docker
По умолчанию команда docker ps выведет только запущенные контейрены
bednyakov@ubuntu:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d68b29b76a2 giggio/openvpn-arm "ovpn_run" 33 hours ago Up 33 hours 0.0.0.0:1194->1194/udp, :::1194->1194/udp openvpn
Для того, чтобы посмотреть все активные контейнеры и которые были запущенны ранее, необходимо запустить команду docker ps -a
bednyakov@ubuntu:~$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d68b29b76a2 giggio/openvpn-arm "ovpn_run" 33 hours ago Up 33 hours 0.0.0.0:1194->1194/udp, :::1194->1194/udp openvpn 77ab3dcdc598 hello-world "/hello" 3 weeks ago Exited (0) 3 weeks ago optimistic_wu
Контейнер запускается командой run.
Основные флаги при запуске контейнера:
Например:
docker run -d -p 555:80 --name NAME -v ~/PATH:/usr/share/nginx/html nginx
Докер попытается найти образ nginx локально, при его отутсвии скачает его с docker hub,
далее он запустит контейнер в фоновом режиме, на локальном порту 555, с именем NAME и
данные для отображения возьмет из локальной директории ~/PATH.
docker stop id
docker start id
docker rm id
docker rm $(docker ps -a -f status=exited -q)
docker images
docker rmi id
docker rmi $(docker images -a -q)
docker image prune --all
docker exec -it id_container /bin/bash
docker commit id new_name
создаст копию image с другим именем и тегом
docker tag oldname:v1 newname:v2
docker volume create --name volume-name
docker volume ls
docker volume inspect volume-name
При выполнении необходимо указать флаг --restart.
При запуске контейнера синтаксис имеет следующий вид
docker run --restart (значение флага) (имя контейнера)
Если контейнер уже создан, то необходимо сделать update.
docker update --restart always id
Для просмотра использовании дискового пространства выполнить команду docker system df
vlad@ubuntu-hp:$ docker system df TYPE TOTAL ACTIVE SIZE RECLAIMABLE Images 5 2 2.406GB 1.76GB (73%) Containers 3 0 1.877MB 1.877MB (100%) Local Volumes 4 0 52.59MB 52.59MB (100%) Build Cache 0 0 0B 0B
Для очистки кэш необходимо выполнить
docker builder prune --all
В моем случае удалилось 0B
vlad@ubuntu-hp:~$ docker builder prune --all WARNING! This will remove all build cache. Are you sure you want to continue? [y/N] y Total reclaimed space: 0B
Необходимо создать volume
docker volume create portainer_data
Запустим портейнер следующей командой
docker run -d -p 9000:9000 \ --name portainer \ --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data portainer/portainer