- FROM <имя-образа> — какой образ использовать в качестве базы (должна быть первой строкой в любом Dockerfile).
- MAINTAINER <имя> — имя мантейнера данного Dockerfile.
- RUN <команда> — запустить указанную команду внутри контейнера.
- CMD <команда> — выполнить команду при запуске контейнера (обычно идет последней).
- EXPOSE <порт> — список портов, которые будет слушать контейнер (используется механизмом линковки).
- ENV <ключ> <значение> — создать переменную окружения.
- ADD <путь> <путь> — скопировать файл/каталог внутрь контейнера/образа (первый аргумент может быть URL).
- ENTRYPOINT <команда> — команда для запуска приложения в контейнере (по умолчанию /bin/sh -c).
- VOLUME <путь> — пробросить в контейнер указанный каталог (аналог опции -v).
- USER <имя> — сменить юзера внутри контейнера.
- WORKDIR <путь> — сменить каталог внутри контейнера.
- ONBUILD [ИНСТРУКЦИЯ] — запустить указанную инструкцию Dockerfile только в том случае, если образ используется для сборки другого образа (с помощью FROM).
Launch docker container earlier (when OS is loading after reboot) than other containers by Docker manager
MySQL for example:
$ vi /etc/systemd/system/docker-mysql-init
[Unit]
Description=MySQL container
Author=Me
After=docker.service
[Service]
Restart=always
ExecStart=/usr/bin/docker start -a mysql
ExecStop=/usr/bin/docker stop mysql
[Install]
WantedBy=local.target
And then enable this service:
$ sudo systemctl enable docker-mysql
pass