Docker: различия между версиями
Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску
Строка 31: | Строка 31: | ||
В докере два основных понятия - контейнер и снимок (image). | В докере два основных понятия - контейнер и снимок (image). | ||
Снимок это то что хранится в репозитории и не изменяется, контейнер это инстанс сделанный на основе снимка | Снимок это то что хранится в репозитории и не изменяется, контейнер это инстанс сделанный на основе снимка | ||
=== Узнать историю изменений | === Узнать историю изменений === | ||
Поможет понять как изготавливался снимок и что с ним можно еще сделать. | Поможет понять как изготавливался снимок и что с ним можно еще сделать. | ||
docker history <id> | docker history <id> |
Версия 00:58, 14 марта 2016
Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы.
Быстрый старт
- Поиск контейнера:
docker search cs16 NAME DESCRIPTION STARS OFFICIAL AUTOMATED jarlefosen/cs16 Start your own CS 1.6 server in a matter o... 1
- Загрузка:
docker pull jarlefosen/cs16 docker pull fotengauer/altlinux-sisyphus
- Запуск:
docker run -t -i -p 26900:26900/udp -p 27020:27020/udp -p 27015:27015/udp -p 27015:27015 jarlefosen/cs16
- Отсоединение (если запущено с -t -i):
Ctrl+p + Ctrl+q
- Сохранение изменений:
docker ps docker commit <id> efnez/cs16 docker commit -m "Added json gem" -a "Kate Smith" <id> ouruser/sinatra:v2
- Подсоединение
docker ps docker attach <id> docker exec -i -t <id> bash docker exec -it --user root <id> bash #с правами рута
Полное погружение
В докере два основных понятия - контейнер и снимок (image). Снимок это то что хранится в репозитории и не изменяется, контейнер это инстанс сделанный на основе снимка
Узнать историю изменений
Поможет понять как изготавливался снимок и что с ним можно еще сделать.
docker history <id> https://imagelayers.io/?images=jarlefosen%2Fcs16:latest
Внести свои изменения
Пример контейнера:
- создающегося из снимка scratch
- качающего что-то
- меняющего воркдир
- открывающего локальные порты контейнера
- копирующего файлы из вне в контейнер
- задающего переменную, можно переопределить заданные ранее в унаследованных снимках
- запускающего основную нагрузку
FROM scratch RUN wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz -O- | tar xz WORKDIR /steam/ EXPOSE 26900/udp:{} 27015/udp:{} 27015 27020/udp:{} COPY /tmp/server.cfg in cstrike/server.cfg ENV SERVER_NAME="Counter Strike 1.6 Server" ENTRYPOINT &{"/bin/sh" "-c" "./hlds_run -game cstrike +sv_lan 0 +hostname \\\"$SERVER_NAME\\\"}
Сохраним эти строки в файл с названием Dockerfile.
Сборка снимка из Dockerfile
Перейдём в папку с докерфайлом и
docker build -p my_nick/my_avesome_image ./
Теперь у нас есть новый снимок.
Запуск контейнера из снимка
docker run -it my_nick/my_avesome_image
Планы интеграции в epm
epms - docker search (распознавать php/php) epmi - docker pull