Home

Tags

Шпаргалка по Docker

2015-01-20 docker virtual

Установка
Документация https://docs.docker.com/installation/ubuntulinux/#ubuntu-trusty-1404-lts-64-bit, либо можно выполнить код:

curl -sSL https://get.docker.com/ubuntu/ | sudo sh

Запуск docker от пользователя:
sudo groupadd docker
sudo gpasswd -a ${USER} docker
sudo service docker restart
or
sudo service docker.io restart
newgrp docker

Собрать образ из текущей папки:
docker build -t Name .

Список образов:
docker images

Список контейнеров:
docker ps -a

Запуск команды в активном контейнере:
docker exec -d Name touch /tmp/new_file

Запуск bash в активном контейнере:
docker exec -it Name bash

Остановить контейнер:
docker stop Name

Удалить контейнер:
docker rm NameOrId

Удалить образ:
docker rmi NameOrId

Запустить контейнер:
docker run -v /hostDir:/contDir -i -t --rm -p 8080:8080 --name Name Image /bin/bash
-v /hostDir:/contDir подключенине папки
-i -t интерактивное управление
--rm удалить контейнер после остановки
-p hostPort:containerPort пробросить порт
--name Name имя контейнера
Image имя образа
/bin/bash запускаемая команда при запуске контейнера
--link db:db прилинковать имяконтейнера:внутренее имя

Изменить путь хранения образов, данных в ubuntu, для этого нужно в файл /etc/default/docker добавить опцию:
DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4 -g /new/location"
Для Docker 17+, файл /etc/docker/daemon.json
{
    "data-root": "/home/docker",
    "dns": ["8.8.8.8", "8.8.4.4"]
}

Изменить hotkey для detach контейнера файл ~/.docker/config.json
{
  "detachKeys": "ctrl-y,y"
}

Подключить папку к запущенному контейнеру
1) Перейти в папку-корень нужного контейнера
cd /srv/docker/aufs/mnt/c0a9f1c2d/
2) Создать папку и примонтировать
mkdir /app; mount -o bind /host/path ./app
3) Перезапустить контейнер