Docker: различия между версиями

Материал из Etersoft wiki
Перейти к навигацииПерейти к поиску
Строка 11: Строка 11:
  docker pull jarlefosen/cs16
  docker pull jarlefosen/cs16


* Запуск:
* Запуск (можно запускать не загружая):
  docker run -ti fotengauer/altlinux-sisyphus # Простой
  docker run -ti fotengauer/altlinux-sisyphus # Простой
  docker run --restart=always --name=cs16 -dit -p 26900:26900/udp -p 27020:27020/udp -p 27015:27015/udp -p 27015:27015 efnez/cs16
  docker run --restart=always --name=cs16 -dit -p 26900:26900/udp -p 27020:27020/udp -p 27015:27015/udp -p 27015:27015 efnez/cs16
  # C автоперезапуском, заданием имени, запуском в фоне -d и пробросом портов
  # C автоперезапуском, заданием имени, запуском в фоне -d и пробросом портов


* Отсоединение (если запущено с -t -i):
* Отсоединение от контенйнера (если запущено с -t -i):
  exit
  exit
  Ctrl+p + Ctrl+q
  Ctrl+p + Ctrl+q


* Узнать <id>
* Посмотреть запущенные контейнеры и их <id>  
  docker ps
  docker ps


Строка 27: Строка 27:
  docker commit -m "Added json gem" -a "Kate Smith" <id> ouruser/sinatra:v2
  docker commit -m "Added json gem" -a "Kate Smith" <id> ouruser/sinatra:v2


* Подсоединение
* Подсоединение к запущенному контейнеру
  docker attach <id>
  docker attach <id>
  docker exec -i -t <id> bash
  docker exec -i -t <id> bash

Версия 15:09, 5 августа 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 fotengauer/altlinux-sisyphus
docker pull jarlefosen/cs16
  • Запуск (можно запускать не загружая):
docker run -ti fotengauer/altlinux-sisyphus # Простой
docker run --restart=always --name=cs16 -dit -p 26900:26900/udp -p 27020:27020/udp -p 27015:27015/udp -p 27015:27015 efnez/cs16
# C автоперезапуском, заданием имени, запуском в фоне -d и пробросом портов
  • Отсоединение от контенйнера (если запущено с -t -i):
exit
Ctrl+p + Ctrl+q
  • Посмотреть запущенные контейнеры и их <id>
docker ps
  • Сохранение изменений:
docker commit <id> efnez/cs16
docker commit -m "Added json gem" -a "Kate Smith" <id> ouruser/sinatra:v2
  • Подсоединение к запущенному контейнеру
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

Внести свои изменения

Пример контейнера:

  1. создающегося из снимка scratch
  2. качающего что-то
  3. меняющего воркдир
  4. открывающего локальные порты контейнера
  5. копирующего файлы из вне в контейнер
  6. задающего переменную, можно переопределить заданные ранее в унаследованных снимках
  7. запускающего основную нагрузку
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  

Ссылки по теме