Le meilleur didacticiel Docker installer Apache en 2024, dans ce didacticiel, vous pouvez apprendre Procédé de construction d'Dockerfile,Méthode deux, docker traction httpd,Reflétant en utilisant apache,
Tout d'abord, créer un apache répertoire utilisé pour stocker des trucs liés à dos.
w3big@w3big:~$ mkdir -p ~/apache/www ~/apache/logs ~/apache/conf
répertoire www sera mappé sur le répertoire de l'application de conteneur de configuration apache
apache logs sera mappé sur le répertoire des journaux de conteneur
les fichiers de configuration du répertoire conf sont mappés sur le conteneur apache du fichier de configuration
Dans le répertoire apache créé, créez Dockerfile
FROM debian:jessie # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added #RUN groupadd -r www-data && useradd -r --create-home -g www-data www-data ENV HTTPD_PREFIX /usr/local/apache2 ENV PATH $PATH:$HTTPD_PREFIX/bin RUN mkdir -p "$HTTPD_PREFIX" \ && chown www-data:www-data "$HTTPD_PREFIX" WORKDIR $HTTPD_PREFIX # install httpd runtime dependencies # https://httpd.apache.org/docs/2.4/install#requirements RUN apt-get update \ && apt-get install -y --no-install-recommends \ libapr1 \ libaprutil1 \ libaprutil1-ldap \ libapr1-dev \ libaprutil1-dev \ libpcre++0 \ libssl1.0.0 \ && rm -r /var/lib/apt/lists/* ENV HTTPD_VERSION 2.4.20 ENV HTTPD_BZ2_URL https://www.apache.org/dist/httpd/httpd-$HTTPD_VERSION.tar.bz2 RUN buildDeps=' \ ca-certificates \ curl \ bzip2 \ gcc \ libpcre++-dev \ libssl-dev \ make \ ' \ set -x \ && apt-get update \ && apt-get install -y --no-install-recommends $buildDeps \ && rm -r /var/lib/apt/lists/* \ \ && curl -fSL "$HTTPD_BZ2_URL" -o httpd.tar.bz2 \ && curl -fSL "$HTTPD_BZ2_URL.asc" -o httpd.tar.bz2.asc \ # see https://httpd.apache.org/download.cgi#verify && export GNUPGHOME="$(mktemp -d)" \ && gpg --keyserver ha.pool.sks-keyservers.net --recv-keys A93D62ECC3C8EA12DB220EC934EA76E6791485A8 \ && gpg --batch --verify httpd.tar.bz2.asc httpd.tar.bz2 \ && rm -r "$GNUPGHOME" httpd.tar.bz2.asc \ \ && mkdir -p src \ && tar -xvf httpd.tar.bz2 -C src --strip-components=1 \ && rm httpd.tar.bz2 \ && cd src \ \ && ./configure \ --prefix="$HTTPD_PREFIX" \ --enable-mods-shared=reallyall \ && make -j"$(nproc)" \ && make install \ \ && cd fr \ && rm -r src \ \ && sed -ri \ -e 's!^(\s*CustomLog)\s+\S+!\1 /proc/self/fd/1!g' \ -e 's!^(\s*ErrorLog)\s+\S+!\1 /proc/self/fd/2!g' \ "$HTTPD_PREFIX/conf/httpd.conf" \ \ && apt-get purge -y --auto-remove $buildDeps COPY httpd-foreground /usr/local/bin/ EXPOSE 80 CMD ["httpd-foreground"]
Dockerfile fichier COPY httpd-plan / usr / local / bin / httpd-plan est une copie du répertoire courant vers le miroir, le service httpd comme un script de démarrage, nous voulons donc créer un fichier de script httpd-plan local
#!/bin/bash set -e # Apache gets grumpy about PID files pre-existing rm -f /usr/local/apache2/logs/httpd.pid exec httpd -DFOREGROUND
permissions fichier exécutables httpd-plan Étant donné
w3big@w3big:~/apache$ chmod +x httpd-foreground
Créer un miroir à travers Dockerfile, remplacez-le avec votre propre nom
w3big@w3big:~/apache$ docker build -t httpd .
Une fois créé, nous pouvons trouver l'image que vous venez de créer dans la liste de miroir local
w3big@w3big:~/apache$ docker images httpd REPOSITORY TAG IMAGE ID CREATED SIZE httpd latest da1536b4ef14 23 seconds ago 195.1 MB
Trouver miroir httpd sur Docker Hub
w3big@w3big:~/apache$ docker search httpd NAME DESCRIPTION STARS OFFICIAL AUTOMATED httpd The Apache HTTP Server fr 524 [OK] centos/httpd 7 [OK] rgielen/httpd-image-php5 Docker image for Apachefr. 1 [OK] microwebapps/httpd-frontend Httpd frontend allowingfr. 1 [OK] lolhens/httpd Apache httpd 2 Server 1 [OK] publici/httpd httpd:latest 0 [OK] publicisworldwide/httpd The Apache httpd webserfr. 0 [OK] rgielen/httpd-image-simple Docker image for simplefr. 0 [OK] solsson/httpd Derivatives of the offifr. 0 [OK] rgielen/httpd-image-drush Apache HTTPD + Drupal Sfr. 0 [OK] learninglayers/httpd 0 [OK] sohrabkhan/httpd Docker httpd + php5.6 (fr. 0 [OK] aintohvri/docker-httpd Apache HTTPD Docker extfr. 0 [OK] alizarion/httpd httpd on centos with mofr. 0 [OK] fr.
Ici, nous retirons les miroirs officiels
w3big@w3big:~/apache$ docker pull httpd
Attendez que le téléchargement est terminé, nous pouvons être trouvés dans le dépôt de la liste de miroir local pour miroir de httpd.
docker run -p 80:80 -v $PWD/www/:/usr/local/apache2/htdocs/ -v $PWD/conf/httpd.conf:/usr/local/apache2/conf/httpd.conf -v $PWD/logs/:/usr/local/apache2/logs/ -d httpd
Commande Description:
-p 80:80: sera mappé sur le port hôte 80 du port de conteneurs 80
-v $ PWD / www /: / usr / local / apache2 / htdocs /: Le répertoire www hôte dans le répertoire courant est monté sur le conteneur / usr / local / apache2 / htdocs /
-v $ PWD / conf / httpd.conf: /usr/local/apache2/conf/httpd.conf: conf sera l' hôte fichier actuel répertoire / httpd.conf pour monter le conteneur / usr / apache2 / conf / local /httpd.conf
-v $ PWD / logs /: / usr / local / apache2 / logs /: logs accueillera le répertoire courant est monté sur le conteneur / usr / local / apache2 / logs /
Vérifier le conteneur commence circonstances
w3big@w3big:~/apache$ docker ps CONTAINER ID IMAGE COMMAND fr. PORTS NAMES 79a97f2aac37 httpd "httpd-foreground" fr. 0.0.0.0:80->80/tcp sharp_swanson
Accessibles par un navigateur