Docker-CE Шаблоны

Редакция автор: stain

Официальный способ установки, но на виртуалке не все так гладко как описано.

Установка докера.

Для Ubuntu 16.04 lts server

1. Удаляем старое.

sudo apt-get remove docker docker-engine docker.io

2. Устанавливаем для 14.04 allow Docker to use the aufs storage drivers. Для 16.04 не требуется.

sudo apt-get update && sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual

2.1 Устанавливаем для allow apt to use a repository over HTTPS.

sudo apt-get update && sudo apt-get install apt-transport-https ca-certificates curl software-properties-common

3. Прописываем ключи к репозиторию.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && sudo apt-key fingerprint 0EBFCD88

4. Добавляем репозиторий напрямую в с помощью редактора/etc/apt/sources.list.

deb https://download.docker.com/linux/ubuntu xenial stable

5. Устанавливаем докер.

sudo apt-get update && sudo apt-get install docker-ce

Первый блин

Создаем каталог для контейнеров.
Создаем каталог для первого блина, допустим это UBUNTU16.
создаем файл Dockerfile

FROM ubuntu:16.04 #Указывает образ обычно сторонний на котором будет строиться вся ваша кухня. 
ADD можно добавить каталог
WORKDIR рабочий директорий, для выполнения комманд из RUN.
RUN тут можно что то установить или выполнить допустим sudo apt-get update && sudo apt-get install LAMP
CMD только единожды может быть в докерфайле, служит чтобы что то выполнить или просто вывести сообщение посредством echo.
ENV описывает переменные окружения и позволяет их модифицировать для контейнера например переменная path

после того как файл готов, заходим в дирректорию контейнера
и пробуем в консоли запустить создание контейнера
docker build -t меткаконтейнеравашегоприложения .
Пробуем запустить ваш контейнер временно (-rm) интерактивно(-it)
docker run -ti --rm -p 5000:8080 меткаконтейнеравашегоприложенияв данном случае вы попадете внутрь контейнера в командный интерпретатор как в случае с chroot и что бы вы там не поменяли изменится это только внутри контейнера например новые файлы появятся в контейнере и когда вы закончите работу с ним то по завершении работы контейнера они бы остались в каталоге контейнера(если бы не был использован ключ -rm ).
Изменения останутся только если выйти из контейнера через exit, и провести подобную операцию docker commit -m "What did you do to the image" -a "Author Name" container-id repository/new_image_name

Уничтожение контейнера

docker rm хешконтейнера
Где взять хеш контейнера docker ps -a, самая левая колонка.

Крадем золотое руно.

Идем на DockerHub
Или из консоли docker search что-то, но прочесть дополнительную информацию о контейнере проще будет через браузер
Ищем интересующий вас инструмент например этот
создаем каталог контейнера На самом деле если вам не нужны надстройки, просто docker pull чей-то-образ
создаем короткий Dockerfile
FROM greyltc/lamp
Создаем котейнер docker build -t меткаконтейнеравашегоприложения .

Запускаем контейнер docker run --name lamp -p 80:80 -p 443:443 -d greyltc/lamp
Накручиваем что надо поверх.

На закуску, образы хранятся не в каталогах контейнеров а все вместе имена у них в виде хешей.
В общем нужно еще указывать где будет лежать ваш контент.

Касательно команд тут все более менее актуально, но по инсталяции самого докера информация устарела.

Копипастим через SSH

Основной трабл консольного сервера на виртуальной машине. Невозможности копипаста
а потому будем ходить через Putty и для этого:
Добавляем еще один сетевой интерфейс в режиме "Виртуальный адаптер хоста"

sudo apt-get update && sudo apt-get install ssh
sudo nano /etc/network/interfaces

Добавляем в низ файла:
auto enp0s8
iface enp0s8 inet static
    address 192.168.56.10
    netmask 255.255.255.0

Сохраняем файл, перезагружаемся: sudo reboot

первая дефолтная сетка начинается с 192.168.56.XXX

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.