Skip to content

Instantly share code, notes, and snippets.

@mikkabond
Last active February 16, 2020 08:59
Show Gist options
  • Save mikkabond/bafbe4cceb225f576dbe8af055279a00 to your computer and use it in GitHub Desktop.
Save mikkabond/bafbe4cceb225f576dbe8af055279a00 to your computer and use it in GitHub Desktop.
docker tips and snippets
## docker and virtualbox on the same Windows 10 host
As outlined here, Docker for Windows requires Hyper-V. This needs to be disabled before you can run VirtualBox.
# Run from elevated prompt (admin privileges)
bcdedit /set hypervisorlaunchtype off
And to start using Docker for Windows again, re-enable Hyper-V:
# Run from elevated prompt (admin privileges)
bcdedit /set hypervisorlaunchtype auto
A reboot is required in both cases
## собрать образ приложения согласно настройкам в Dockerfile в текущей папке
docker build
## запуск образа и команды в контейнере (например ubuntu bash запустит ос и программу bash внутри нее)
docker run -it имя_образа команда
## запуск образа postgres с проброской портов и именем контейнера test-postgres
docker run -p 5432:5432 --name test-postgres -e POSTGRES_PASSWORD=secret -d postgres
## вывести список контейнеров
docker ps -a
## список доступных образов
docker images
## журнал контейнера
docker logs имя_контейнера
## удалить контейнер
docker rm имя_контейнера
## создать образ из контейнера
docker commit ...
## отправить образ в репозиторий
docker push ...
## узнать ip адрес виртуальной машины для docker (актуально только для Windows)
docker-machine ip default
## просмотр сетей
docker network ls
## добавление сети с произвольным именем имя_сети с типом драйвер (bridge,none,host) с маской вида 182.18.0.0/16
docker network create --driver драйвер --subnet маска имя_сети
## папка с объектами докера по-умолчанию
/var/lib/docker
## запуск образа с указанием монтирования внешнего_пути (т.е. в хост операционной системе) во внутренний_путь (внутри контейнера)
docker run -v внешний_путь:внутренний_путь образ
## запуск имя_контейнера с монтированием внешней папки внутрь контейнера в режиме
## type (bind - произвольное расположение, volume - директория в стандартной папке докера /var/lib/docker/volumes)
docker run --mount type=bind,source=/path/to/source/dir,target=/path/inside/container имя_контейнера
## свять контейнеры с помощью имя_внешнего_контейнера и имя_хоста_внешнего_контейнера_внутри_целевого_контейнера
docker run -d \
--name=имя_контейнера \
-p 8888:80 \
--link имя_внешнего_контейнера:имя_хоста_внешнего_контейнера_внутри_целевого_контейнера \
имя_образа
## запуск стека приложений с настройками в docker-compose.yml файле
docker-compose up
## запуск локального реестра образов с именем имя_реестра и добавление образа имя_образа в него
docker run -d -p 5000:5000 --name имя_реестра registry:2
docker image tag имя_образа localhost:5000/имя_образа
docker pull localhost:5000/имя_образа #вместо localhost может быть ip или доменное имя
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment