Docker шпаргалка частые команды чтобы не забыть
Установка
Ubuntu
Статья в официальной документации
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
## step
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic test"
sudo apt update
sudo apt install docker-ce
# check
sudo systemctl status docker
# add user
sudo usermod -aG docker $USER
# install docker compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# https://github.com/docker/compose/releases/download/1.25.5/docker-compose-Linux-x86_64
sudo chmod +x /usr/local/bin/docker-compose
Настройка
После установки docker желательно добавить докев в группу пользователя.
sudo usermod -aG docker $USER
Команды Docker
docker run
docker run -d --name tg tgfin
- запустить докер образ в фоне (-d
), назвать его "tg
" и образа tgfin
можно добавить (--rm
), тогда запущеный образ будет удален сразу после остановки. Не будет так загружена история.
Быстрое удалене имиджей
docker images
# Отображает существующие имиджи.docker images -q
# Отображает ID существующих имиджей.docker image rm
# удаляет имиджи (образа) по их ID
удаляет все неработающие контейнеры по их ID
docker rm $(docker ps -a -q)
sudo service docker restart
- перезапуск сервиса докер.
Параметры командной строки
--rm
- удалить докер контейнер после остановки (docker stop)
Полезные гайды
Интересные образы
Docker-android
Эмулятор android в образе докер
# С автоудалением образа Samsung Galaxy S6
# не работает orbot
docker run --privileged -d --rm -p 6080:6080 -p 5554:5554 -p 5555:5555 -p 7071:7071 -e DEVICE="Nexus 5" -v /home/wega/Downloads/android_download:/storage/emulated/0/Download --name android-torrent budtmo/docker-android-x86-9.0
Образы эмулятора можно будет увидеть задя по ссылке докера обычно
Docker-firefox
Есть версия докера с отдельным браузером Фаерфокс.
docker run -d --rm --name firefox -e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix kennethkl/firefox
Проблемы
Нет соединение с интернетом из докер контейнера.
2 пути
ls /etc/docker # Is there a file at the specified path daemon.json
cd /etc/docker
sudo touch daemon.json
sudo vim /etc/docker/daemon.json
в файл ваставить днс
{
"dns": ["192.168.1.1", "192.168.8.1", "8.8.8.8"]
}
После этого перезапустить сервер командой
sudo service docker restart
...
Но лично у меня ничего из этого не вышло.
Еще один путь к файлу настроек
sudo vim /etc/default/docker
# Docker Upstart and SysVinit configuration file
# Use DOCKER_OPTS to modify the daemon startup options.
DOCKER_OPTS="--dns 208.67.222.222 --dns 208.67.220.220
в файл настроек вставить dns
Странности
Возникла проблема с отсутствием интернета на докер контейнерах. Проявляется это только с провайдером МТС.
Предположительно из за того, что МТС обрезает входящий TTL до 1. И все пакеды, не идут дальше роутера. Проверить это можно запустив докер bash
docker run -it --rm bash
# далее в интерактивной оболочке
# проверить трассировку маршрута к pypi.org
traceroute pypi.org
# в моем случае вывод не радует...
bash-5.0# traceroute pypi.org traceroute to pypi.org (151.101.192.223), 30 hops max, 46 byte packets 1 172.17.0.1 (172.17.0.1) 0.022 ms 0.027 ms 0.016 ms 2 192.168.8.1 (192.168.8.1) 1.408 ms 1.443 ms 1.178 ms 3 * * 4 * 5 * 6 * *
что интересно ping проходит.