Child pages
  • Расширенная установка собственного контейнера (Debian9 host+container)
Skip to end of metadata
Go to start of metadata

Создаем Dockerfile :

FROM debian
# fix locales for tmux
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y locales

RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \
    dpkg-reconfigure --frontend=noninteractive locales && \
    update-locale LANG=en_US.UTF-8
ENV LANG en_US.UTF-8 
# Install pre-reqs
RUN apt-get update && apt-get install -yq wget
RUN apt-get install -yq openssh-server nano
# s6 + prereqz
ADD https://github.com/just-containers/s6-overlay/releases/download/v1.21.7.0/s6-overlay-amd64.tar.gz /tmp/
RUN gunzip -c /tmp/s6-overlay-amd64.tar.gz | tar -xf - -C /
RUN apt-get install mariadb-server libmariadbclient-dev libmariadbclient-dev-compat -yq
RUN apt-get install -yq apache2
RUN apt-get install linux-headers-`uname -r` -yq

RUN mkdir -p /etc/services.d/mysqld
RUN echo '#!/usr/bin/execlineb -P' > /etc/services.d/mysqld/run
RUN echo 'mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/x86_64-linux-gnu/mariadb18/plugin --user=mysql --skip-log-error --port=3306' >> /etc/services.d/mysqld/run

RUN mkdir /var/run/mysqld/
RUN chown -R mysql. /var/run/mysqld/

RUN mkdir -p /etc/services.d/apache2
RUN echo '#!/usr/bin/execlineb -P' > /etc/services.d/apache2/run
RUN echo 'apache2ctl -DFOREGROUND' >> /etc/services.d/apache2/run

# download auto-installer distrib pkg
WORKDIR /root
RUN wget https://github.com/nabat/AInstall/archive/master.tar.gz
RUN tar zxvf master.tar.gz
RUN apt-get install linux-headers-`uname -r` -yq

Для корректной установки accel-ppp необходимо установить на docker host следующие пакеты :

apt-get install linux-headers-`uname -r` isc-dhcp git make vlan libnl-utils gcc cmake git libcrypto++-dev libcrypto++-utils lua5.1 liblua5.1-0-dev libpcre++-dev libpcre3 libsnmp-dev iftop iptraf ipset libipset-dev

Запускаем билд контейнера, запускаем сам контейнер :

docker build . -t "abills-docker"
docker run --privileged --cap-add=ALL -v /lib/modules:/lib/modules -v /dev/:/dev -v /usr/src:/usr/src -p28882:22 -p9443:9443 -it abills-docker
ПеременнаяЗначение
--privileged 
запуск контейнера с раширенными привилегиями
--cap-add=ALL
включить все Linux capabilities
-v /lib/modules:/lib/modules -v /dev/:/dev -v /usr/src:/usr/src
бинды директорий хост:контейнер
-p28882:22 -p9443:9443
переназначаем ssh , https порты
-it
после запуска контейнера попадаем сразу в него
abills-docker

имя контейнера который мы сделали

Внутри контейнера запускаем авто-инсталл :

cd AInstall-master && ./install.sh

Подробнее о скрипте автоматической установки информация тут .

После настройки и внесенных изменений, контейнер для последующего использования можем сохранить :

  • ищем имя нашего контейнера

    root@debian9:~# docker ps -a
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
    647d8bbeae55        abills-docker     "bash"              3 hours ago         Exited (0) 21 seconds ago                       dazzling_stuff
    ....
  • комитаем (сохраняем) контейнер

    root@debian9:~# docker commit dazzling_stuff abills-docker
    sha256:e879adab2fe3603221bf91931ae4666012caa40c1704a2cb913fa36cb814254d
  • ищем образ контейнера

    root@debian9:~# docker images
    REPOSITORY           TAG                 IMAGE ID            CREATED              SIZE
    abills-docker      latest              e879adab2fe3        About a minute ago   1.06GB
    abills               infinity            5e5b5a527c30        6 minutes ago        1.06GB
    ppp.1.5              build               431e07e8b8d3        58 minutes ago          1.54GB
    ....
  • сохраняем в докер гитхабе

    root@debian9:~# docker tag abills-docker пользователь_докергитхаба/abills-docker
    root@debian9:~# docker push пользователь_докергитхаба/abills-docker
    The push refers to repository [docker.io/пользователь_докергитхаба/abills-docker]
    b003adea409b: Pushed
    59ff3846a853: Pushed
    6eb2d1b2798b: Pushed
    d6cc4ca1b923: Pushed
    049bd9ef1947: Pushed
    f715ed19c28b: Mounted from library/debian
    latest: digest: sha256:1b9a87711066aadb1795ea970be714d28f18cd9fb0db393f33b2074b1287a499 size: 1587
  • No labels