Создаем 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