Шпаргалка по Docker
Докер – штука для керування лінукс-контейнерами. А Лінукс-контейнери – це особливий вид гіпервізора, який дозволяє створювати на лінуксі віртуальні лінукси. Це мінус що тільки лінукси, але плюс що ядро операційної системи для кожного контейнера спільне, тому ці контейнери набагато легші в порівнянні з повноцінними віртуальними машинами.
Віртуальні машини корисні для ізоляції середовища. Наприклад середовища розробки. Хоча цим може займатись і Vagrant. А ще Vagrant може керувати не тільки машинами на VirtualBox, а й контейнерами Docker. Коли що використувати – здається справа особистих вподобань. Хоча мені кажуть що так як контейнери більш легковісні, тут інша філософія роботи, наприклад “кожному процесу свій контейнер”. Ось цікаве обговорення питання що коли варто використовувати, в якому беруть участь автор Vagrant та автор Docker.
Але краще раз попробувати ніж сто разів прочитати:
Інсталяція
На Linux найпростіше, хоч і не безпечно:
wget -qO- https://get.docker.com/ | sh
Запуск контейнера
bunyk@ubuntu:~$ docker run docker/whalesay cowsay boo Post http:///var/run/docker.sock/v1.19/containers/create: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?
Якщо бачите таку помилку – значить або докер ще не запущений:
bunyk@ubuntu:~$ sudo service docker start
Або ваш користувач не знаходиться в групі докера:
sudo usermod -aG docker bunyk
Різні інші дії
# скачати образ (щоб він не качався коли ми будемо робити йому run) docker pull # список всіх скачаних образів docker images # всі запущені контейнери docker ps # всі (не лише запущені) контейнери docker ps -a # показати лише ідентифікатори контейнерів docker ps -q # видалити всі контейнери docker rm $(docker ps -aq) # останній запущений контейнер docker ps -l # видалити контейнер docker rm # видалити образ docker rmi # запустити інтерактивну програму в контейнері docker run -t -i debian /bin/bash # запустити демона в контейнері docker run -d debian /bin/sh -c "while true; do echo hello world; sleep 1; done" # запустити контейнер так, що директорію хоста /host/dir буде змонтовано як /container/dir docker run -v /host/dir:/container/dir debian # слідкувати за логами демона в контейнері docker logs -f ecstatic_lovelace # збудувати образ з Dockerfile поточної директорії docker build -t ouruser/ourrepo .
Так, Docker то цікава річ. Після того як я спробував LEMP і node через Docker, зрозумів що не повернусь ні до Vagrant ні до XAMMP. Під арчем працює швидко і круто, хоча після оновлення 1.7.0 там якісь проблеми з ядром арча/docker`ом і aufs, але я все рівно рекомендую вам спробувати.
(Під Ubuntu таких проблем нема)
Макс Ляшук
22 Липня, 2015 at 23:11
[…] я вже писав собі шпаргалку по докеру, яка нікому крім мене майже не потрібна, тут буде […]
Docker і обмеження ресурсів | Блоґ одного кібера
31 Березня, 2019 at 01:43