Docker FAQ

  1. 1. Создания Docker Image
  2. 2. Запускаем Wordpress через Docker
  3. 3. Утилиты для мониторинга

Создания Docker Image

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# На основания какого образа делаем
FROM ubuntu:latest
# Каждая команада RUN создает промежуточный образ
RUN apt-get update && apt-get install -y locales && rm -rf /var/lib/apt/lists/* \
&& localedef -i ru_RU -c -f UTF-8 -A /usr/share/locale/locale.alias ru_RU.UTF-8
ENV LANG ru_RU.utf8
# Install MongoDB
RUN \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 && \
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' > /etc/apt/sources.list.d/mongodb.list && \
apt-get update && \
apt-get install -y mongodb-org && \
rm -rf /var/lib/apt/lists/*
# Define mountable directories.
VOLUME ["/data/db"]
# Define working directory.
WORKDIR /data
# Define default command.
CMD ["mongod"]
# Expose ports.
# - 27017: process
# - 28017: http
EXPOSE 27017
  • EXPOSE - проброс портов, которые можно слушать
  • VOLUME - подключаемая директория
  • RUN - каждая команда создает промежуточный слой
  • FROM - на основания какого контейнера будем строить

Строим контейнер:

1
docker build -t monga .

build - построить контейнер

Запускам контейнер:

1
docker run -v $PWD/data:/data/db -p 27017:27017 monga

  • run - запустить контейнер
  • -v - указать дирректорию
  • -p - указать порты mongodb (проброс портов) один ко одному

Запускаем Wordpress через Docker

Получить контейнер с MySQL

1
docker pull mysql

Запус контейнера MySQL

1
sudo docker run --name wp-mysql -e MYSQL_ROOT_PASSWORD=123456 -v $PWD/mysql:/var/lib/mysql -d mysql

Возращает номер запущенного контейнера ID ebe174d9b59ad12c7c67cdbcd697b0019099c21f1ab172131ecb61a5c46e8e29

  • run подимаем контейнер
  • name задаем имя
  • -e передаем пароль контейнеру
  • -v монитруем директорию

Получить контейнер с Wordpress

1
docker pull wordpress

Запус контейнера с Wordpress и перелинковка с базой MySQL

1
sudo docker run --name my-wordpress --link wp-mysql:mysql -p 8080:80 -d wordpress

Через Docker-composer

1
2
3
4
5
6
7
8
9
10
11
wordpress:
image:
wordpress
links:
- db:mysql
ports:
- 8080:80
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: 123456

Поднятие docker-composer:

1
docker-composer up

Отправить контейнер в облако:

1
docker push ...

Утилиты для мониторинга

Shipyard - презапустить контейнер, мониторить контейнер и т.д.